Make sure create record returns updated record
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user