diff options
Diffstat (limited to 'lib/aggiedit')
-rw-r--r-- | lib/aggiedit/accounts.ex | 1 | ||||
-rw-r--r-- | lib/aggiedit/rooms.ex | 8 | ||||
-rw-r--r-- | lib/aggiedit/uploads.ex | 16 |
3 files changed, 11 insertions, 14 deletions
diff --git a/lib/aggiedit/accounts.ex b/lib/aggiedit/accounts.ex index 36dbd0c..1852393 100644 --- a/lib/aggiedit/accounts.ex +++ b/lib/aggiedit/accounts.ex @@ -247,6 +247,7 @@ defmodule Aggiedit.Accounts do def get_user_by_session_token(token) do {:ok, query} = UserToken.verify_session_token_query(token) Repo.one(query) + |> Repo.preload(:room) end @doc """ diff --git a/lib/aggiedit/rooms.ex b/lib/aggiedit/rooms.ex index 272f9b4..8f2e39f 100644 --- a/lib/aggiedit/rooms.ex +++ b/lib/aggiedit/rooms.ex @@ -6,6 +6,7 @@ defmodule Aggiedit.Rooms do import Ecto.Query, warn: false alias Aggiedit.Repo + alias Aggiedit.Accounts alias Aggiedit.Rooms.Room @doc """ @@ -140,9 +141,14 @@ defmodule Aggiedit.Rooms do """ def get_post!(id), do: Repo.get!(Post, id) - def create_post(attrs, after_save \\ &{:ok, &1}) do + def create_post(attrs, user, after_save \\ &{:ok, &1}) do + user = Repo.preload(user, :room) + %Post{} + |> Repo.preload([:user, :room]) |> Post.changeset(attrs) + |> Ecto.Changeset.put_assoc(:user, user) + |> Ecto.Changeset.put_assoc(:room, user.room) |> Repo.insert() |> post_saved(after_save) end diff --git a/lib/aggiedit/uploads.ex b/lib/aggiedit/uploads.ex index 2dcdcc3..4cbc237 100644 --- a/lib/aggiedit/uploads.ex +++ b/lib/aggiedit/uploads.ex @@ -37,21 +37,11 @@ defmodule Aggiedit.Uploads do """ def get_upload!(id), do: Repo.get!(Upload, id) - @doc """ - Creates a upload. - - ## Examples - - iex> create_upload(%{field: value}) - {:ok, %Upload{}} - - iex> create_upload(%{field: bad_value}) - {:error, %Ecto.Changeset{}} - - """ - def create_upload(attrs \\ %{}) do + def create_upload(attrs, user) do %Upload{} + |> Repo.preload(:user) |> Upload.changeset(attrs) + |> Ecto.Changeset.put_assoc(:user, user) |> Repo.insert() end |