Return controlled errors from genre population

Closes #142
This commit is contained in:
Claudio Ortolina
2026-03-30 15:01:42 +01:00
parent 92a36b915a
commit c913dab692
3 changed files with 79 additions and 6 deletions
+6 -6
View File
@@ -256,7 +256,7 @@ defmodule MusicLibrary.Records do
end
end
@spec populate_genres(Record.t()) :: {:ok, Record.t()} | {:error, Ecto.Changeset.t()}
@spec populate_genres(Record.t()) :: {:ok, Record.t()} | {:error, Ecto.Changeset.t() | term()}
def populate_genres(record) do
artists = Enum.map_join(record.artists, ",", fn a -> a.name end)
@@ -270,11 +270,11 @@ defmodule MusicLibrary.Records do
"""
}
{:ok, response} = OpenAI.gpt(completion)
record
|> Record.add_genres(response["genres"])
|> Repo.update()
with {:ok, response} <- OpenAI.gpt(completion) do
record
|> Record.add_genres(response["genres"])
|> Repo.update()
end
end
@spec populate_genres_async(Record.t()) :: {:ok, Oban.Job.t()} | {:error, Ecto.Changeset.t()}