summaryrefslogtreecommitdiff
path: root/lib/aggiedit_web/live/post_live/form_component.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/aggiedit_web/live/post_live/form_component.ex')
-rw-r--r--lib/aggiedit_web/live/post_live/form_component.ex23
1 files changed, 13 insertions, 10 deletions
diff --git a/lib/aggiedit_web/live/post_live/form_component.ex b/lib/aggiedit_web/live/post_live/form_component.ex
index 53b19dd..532950c 100644
--- a/lib/aggiedit_web/live/post_live/form_component.ex
+++ b/lib/aggiedit_web/live/post_live/form_component.ex
@@ -3,17 +3,19 @@ defmodule AggieditWeb.PostLive.FormComponent do
alias Aggiedit.Rooms
alias Aggiedit.Rooms.Post
+ alias Aggiedit.Uploads
alias Aggiedit.Uploads.Upload
alias Aggiedit.Repo
@impl true
- def update(%{post: post} = assigns, socket) do
+ def update(%{current_user: current_user, post: post} = assigns, socket) do
changeset = Rooms.change_post(post)
{:ok,
socket
|> assign(assigns)
|> assign(:changeset, changeset)
+ |> assign(:current_user, current_user)
|> assign(:uploaded_files, [])
|> allow_upload(:upload, accept: ~w(.jpg .jpeg .png .gif), max_entries: 1)
}
@@ -38,19 +40,20 @@ defmodule AggieditWeb.PostLive.FormComponent do
consume_uploaded_entries(socket, :upload, fn data, upload ->
[extension | _] = MIME.extensions(upload.client_type)
filename = "#{upload.uuid}-#{extension}"
- upload = %Upload{
- file: filename,
- size: upload.client_size,
- mime: upload.client_type
- }
dest = Path.join("priv/static/uploads", filename)
File.cp!(data.path, dest)
- Repo.preload(post, :upload)
+ {:ok, upload} = Uploads.create_upload(%{
+ file: filename,
+ size: upload.client_size,
+ mime: upload.client_type,
+ }, socket.assigns.current_user)
+
+ post
+ |> Repo.preload(:upload)
|> Post.change_upload(upload)
- |> Repo.update
- IO.puts(inspect(upload))
+ |> Repo.update()
{:ok, upload}
end)
@@ -71,7 +74,7 @@ defmodule AggieditWeb.PostLive.FormComponent do
end
defp save_post(socket, :new, post_params) do
- case Rooms.create_post(post_params, &save_upload(socket, &1)) do
+ case Rooms.create_post(post_params, socket.assigns.current_user, &save_upload(socket, &1)) do
{:ok, _post} ->
{:noreply,
socket