Handle errors when storing assets
This commit is contained in:
@@ -46,7 +46,8 @@
|
||||
"Bash(ls:*)",
|
||||
"WebFetch(domain:raw.githubusercontent.com)",
|
||||
"WebFetch(domain:github.com)",
|
||||
"WebFetch(domain:hex.pm)"
|
||||
"WebFetch(domain:hex.pm)",
|
||||
"Bash(gh issue:*)"
|
||||
]
|
||||
},
|
||||
"enableAllProjectMcpServers": false
|
||||
|
||||
@@ -583,27 +583,29 @@ defmodule MusicLibraryWeb.Components.RecordForm do
|
||||
end
|
||||
|
||||
defp save_record(socket, record_params, uploaded_covers) do
|
||||
params =
|
||||
case uploaded_covers do
|
||||
[] ->
|
||||
record_params
|
||||
|
||||
[cover_params] ->
|
||||
{:ok, asset} = Assets.store_image(cover_params)
|
||||
Map.put(record_params, "cover_hash", asset.hash)
|
||||
end
|
||||
|
||||
case Records.update_record(socket.assigns.record, params) do
|
||||
{:ok, record} ->
|
||||
notify_parent({:saved, record})
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> put_toast(:info, gettext("Record updated successfully"))
|
||||
|> push_patch(to: socket.assigns.patch)}
|
||||
with {:ok, params} <- maybe_store_uploaded_cover(record_params, uploaded_covers),
|
||||
{:ok, record} <- Records.update_record(socket.assigns.record, params) do
|
||||
notify_parent({:saved, record})
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> put_toast(:info, gettext("Record updated successfully"))
|
||||
|> push_patch(to: socket.assigns.patch)}
|
||||
else
|
||||
{:error, %Ecto.Changeset{} = changeset} ->
|
||||
{:noreply, assign(socket, form: to_form(changeset))}
|
||||
|
||||
{:error, _reason} ->
|
||||
{:noreply, put_toast(socket, :error, gettext("Failed to store cover image"))}
|
||||
end
|
||||
end
|
||||
|
||||
defp maybe_store_uploaded_cover(params, []), do: {:ok, params}
|
||||
|
||||
defp maybe_store_uploaded_cover(params, [cover_params]) do
|
||||
case Assets.store_image(cover_params) do
|
||||
{:ok, asset} -> {:ok, Map.put(params, "cover_hash", asset.hash)}
|
||||
{:error, reason} -> {:error, reason}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -294,27 +294,29 @@ defmodule MusicLibraryWeb.ArtistLive.Form do
|
||||
end
|
||||
|
||||
defp save_artist_info(socket, artist_info_params, uploaded_images) do
|
||||
params =
|
||||
case uploaded_images do
|
||||
[] ->
|
||||
artist_info_params
|
||||
|
||||
[image_params] ->
|
||||
{:ok, asset} = Assets.store_image(image_params)
|
||||
Map.put(artist_info_params, "image_data_hash", asset.hash)
|
||||
end
|
||||
|
||||
case Artists.update_artist_info(socket.assigns.artist_info, params) do
|
||||
{:ok, artist_info} ->
|
||||
notify_parent({:saved, artist_info})
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> put_toast(:info, gettext("Artist updated successfully"))
|
||||
|> push_patch(to: socket.assigns.patch)}
|
||||
with {:ok, params} <- maybe_store_uploaded_image(artist_info_params, uploaded_images),
|
||||
{:ok, artist_info} <- Artists.update_artist_info(socket.assigns.artist_info, params) do
|
||||
notify_parent({:saved, artist_info})
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> put_toast(:info, gettext("Artist updated successfully"))
|
||||
|> push_patch(to: socket.assigns.patch)}
|
||||
else
|
||||
{:error, %Ecto.Changeset{} = changeset} ->
|
||||
{:noreply, assign(socket, form: to_form(changeset))}
|
||||
|
||||
{:error, _reason} ->
|
||||
{:noreply, put_toast(socket, :error, gettext("Failed to store artist image"))}
|
||||
end
|
||||
end
|
||||
|
||||
defp maybe_store_uploaded_image(params, []), do: {:ok, params}
|
||||
|
||||
defp maybe_store_uploaded_image(params, [image_params]) do
|
||||
case Assets.store_image(image_params) do
|
||||
{:ok, asset} -> {:ok, Map.put(params, "image_data_hash", asset.hash)}
|
||||
{:error, reason} -> {:error, reason}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -2053,3 +2053,13 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Refresh Last.fm data"
|
||||
msgstr ""
|
||||
|
||||
#: lib/music_library_web/live/artist_live/form.ex
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to store artist image"
|
||||
msgstr ""
|
||||
|
||||
#: lib/music_library_web/components/record_form.ex
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to store cover image"
|
||||
msgstr ""
|
||||
|
||||
@@ -2053,3 +2053,13 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Refresh Last.fm data"
|
||||
msgstr ""
|
||||
|
||||
#: lib/music_library_web/live/artist_live/form.ex
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Failed to store artist image"
|
||||
msgstr ""
|
||||
|
||||
#: lib/music_library_web/components/record_form.ex
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Failed to store cover image"
|
||||
msgstr ""
|
||||
|
||||
Reference in New Issue
Block a user