Account for absence of discogs id

This commit is contained in:
Claudio Ortolina
2025-04-26 14:32:40 +01:00
parent 34e789fa76
commit 9b7990c14c
2 changed files with 25 additions and 11 deletions
+17 -3
View File
@@ -46,9 +46,11 @@ defmodule MusicLibrary.Artists do
end end
def fetch_artist_info(artist_id) do def fetch_artist_info(artist_id) do
with {:ok, musicbrainz_artist} <- MusicBrainz.get_artist(artist_id), case MusicBrainz.get_artist(artist_id) do
discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist), {:ok, musicbrainz_artist} ->
{:ok, discogs_artist} <- Discogs.get_artist(discogs_id) do if discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist) do
case Discogs.get_artist(discogs_id) do
{:ok, discogs_artist} ->
%ArtistInfo{} %ArtistInfo{}
|> ArtistInfo.changeset(%{ |> ArtistInfo.changeset(%{
id: musicbrainz_artist.id, id: musicbrainz_artist.id,
@@ -56,6 +58,18 @@ defmodule MusicLibrary.Artists do
discogs_data: discogs_artist discogs_data: discogs_artist
}) })
|> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]}) |> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]})
error ->
error
end
else
%ArtistInfo{}
|> ArtistInfo.changeset(%{
id: musicbrainz_artist.id,
musicbrainz_data: musicbrainz_artist.musicbrainz_data
})
|> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]})
end
end end
end end
+1 -1
View File
@@ -24,7 +24,7 @@ defmodule MusicLibrary.Records.ArtistInfo do
:image_data, :image_data,
:image_data_width :image_data_width
]) ])
|> validate_required([:musicbrainz_data, :discogs_data]) |> validate_required([:musicbrainz_data])
|> generate_image_hash() |> generate_image_hash()
end end