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
+24 -10
View File
@@ -46,16 +46,30 @@ defmodule MusicLibrary.Artists do
end
def fetch_artist_info(artist_id) do
with {:ok, musicbrainz_artist} <- MusicBrainz.get_artist(artist_id),
discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist),
{:ok, discogs_artist} <- Discogs.get_artist(discogs_id) do
%ArtistInfo{}
|> ArtistInfo.changeset(%{
id: musicbrainz_artist.id,
musicbrainz_data: musicbrainz_artist.musicbrainz_data,
discogs_data: discogs_artist
})
|> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]})
case MusicBrainz.get_artist(artist_id) do
{:ok, musicbrainz_artist} ->
if discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist) do
case Discogs.get_artist(discogs_id) do
{:ok, discogs_artist} ->
%ArtistInfo{}
|> ArtistInfo.changeset(%{
id: musicbrainz_artist.id,
musicbrainz_data: musicbrainz_artist.musicbrainz_data,
discogs_data: discogs_artist
})
|> 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
+1 -1
View File
@@ -24,7 +24,7 @@ defmodule MusicLibrary.Records.ArtistInfo do
:image_data,
:image_data_width
])
|> validate_required([:musicbrainz_data, :discogs_data])
|> validate_required([:musicbrainz_data])
|> generate_image_hash()
end