some ai generated code from claude that does not work
This commit is contained in:
@@ -2,6 +2,11 @@
|
||||
id="app"
|
||||
data-current-user-id={if @current_user, do: @current_user.id, else: ""}
|
||||
data-current-user-email={if @current_user, do: @current_user.email, else: ""}
|
||||
data-current-user-username={if @current_user, do: @current_user.username || "", else: ""}
|
||||
data-current-user-display-name={
|
||||
if @current_user, do: @current_user.display_name || "", else: ""
|
||||
}
|
||||
data-current-user-avatar-url={if @current_user, do: @current_user.avatar_url || "", else: ""}
|
||||
data-asset-host={@media_host}
|
||||
data-page={@page}
|
||||
data-tweet-id={@tweet_id || ""}
|
||||
|
||||
@@ -2,6 +2,7 @@ defmodule MixerWeb.UploadController do
|
||||
use MixerWeb, :controller
|
||||
|
||||
alias Mixer.Posts.MediaUploader
|
||||
alias Mixer.Accounts.AvatarUploader
|
||||
|
||||
def create(conn, %{"file" => %Plug.Upload{} = upload}) do
|
||||
actor = conn.assigns[:current_user]
|
||||
@@ -46,4 +47,48 @@ defmodule MixerWeb.UploadController do
|
||||
|> put_status(:bad_request)
|
||||
|> json(%{error: "no file provided"})
|
||||
end
|
||||
|
||||
# ── Avatar upload ──────────────────────────────────────────────────────────
|
||||
|
||||
def upload_avatar(conn, %{"file" => %Plug.Upload{} = upload}) do
|
||||
actor = conn.assigns[:current_user]
|
||||
|
||||
unless actor do
|
||||
conn
|
||||
|> put_status(:unauthorized)
|
||||
|> json(%{error: "authentication required"})
|
||||
else
|
||||
scope = %{user_id: actor.id}
|
||||
|
||||
case AvatarUploader.store({upload, scope}) do
|
||||
{:ok, _file_name} ->
|
||||
# The thumb is always stored as avatars/:user_id/thumb.webp
|
||||
thumb_key = "avatars/#{actor.id}/thumb.webp"
|
||||
|
||||
actor
|
||||
|> Ash.Changeset.for_update(:update_avatar, %{avatar_url: thumb_key}, actor: actor)
|
||||
|> Ash.update()
|
||||
|> case do
|
||||
{:ok, _user} ->
|
||||
json(conn, %{success: true, avatarUrl: thumb_key})
|
||||
|
||||
{:error, error} ->
|
||||
conn
|
||||
|> put_status(:unprocessable_entity)
|
||||
|> json(%{success: false, error: inspect(error)})
|
||||
end
|
||||
|
||||
{:error, reason} ->
|
||||
conn
|
||||
|> put_status(:unprocessable_entity)
|
||||
|> json(%{success: false, error: reason})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def upload_avatar(conn, _params) do
|
||||
conn
|
||||
|> put_status(:bad_request)
|
||||
|> json(%{error: "no file provided"})
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user