Make sure create record returns updated record

This commit is contained in:
Claudio Ortolina
2026-04-01 07:06:33 +01:00
parent f2def32571
commit 7d65a7d4ab
+12 -8
View File
@@ -406,18 +406,22 @@ defmodule MusicLibrary.Records do
@spec create_record(map()) :: {:ok, Record.t()} | {:error, Ecto.Changeset.t()} @spec create_record(map()) :: {:ok, Record.t()} | {:error, Ecto.Changeset.t()}
def create_record(attrs \\ %{}) do def create_record(attrs \\ %{}) do
with {:ok, record} <- do_create_record(attrs) do with {:ok, record} <- do_create_record(attrs),
record record = best_effort_extract_colors(record),
|> best_effort_extract_colors() :ok <- refresh_artist_info_async(record) do
|> Record.artist_ids()
|> Enum.each(fn artist_id ->
Artists.refresh_artist_info_async(artist_id)
end)
{:ok, record} {:ok, record}
end end
end end
@spec refresh_artist_info_async(Record.t()) :: :ok
def refresh_artist_info_async(record) do
record
|> Record.artist_ids()
|> Enum.each(fn artist_id ->
Artists.refresh_artist_info_async(artist_id)
end)
end
defp do_create_record(attrs) do defp do_create_record(attrs) do
%Record{} %Record{}
|> Record.changeset(attrs) |> Record.changeset(attrs)