Refactor function to remove nested error handling

This commit is contained in:
Claudio Ortolina
2025-04-29 16:11:05 +01:00
parent f1dd45e438
commit 5e9fba824c
+2 -10
View File
@@ -46,19 +46,14 @@ defmodule MusicLibrary.Artists do
end end
def fetch_artist_info(artist_id) do def fetch_artist_info(artist_id) do
case MusicBrainz.get_artist(artist_id) do with {:ok, musicbrainz_artist} <- MusicBrainz.get_artist(artist_id) do
{:ok, musicbrainz_artist} ->
if discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist) do if discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist) do
case Discogs.get_artist(discogs_id) do with {:ok, discogs_artist} <- Discogs.get_artist(discogs_id) do
{:ok, discogs_artist} ->
create_artist_info(%{ create_artist_info(%{
id: musicbrainz_artist.id, id: musicbrainz_artist.id,
musicbrainz_data: musicbrainz_artist.musicbrainz_data, musicbrainz_data: musicbrainz_artist.musicbrainz_data,
discogs_data: discogs_artist discogs_data: discogs_artist
}) })
error ->
error
end end
else else
create_artist_info(%{ create_artist_info(%{
@@ -66,9 +61,6 @@ defmodule MusicLibrary.Artists do
musicbrainz_data: musicbrainz_artist.musicbrainz_data musicbrainz_data: musicbrainz_artist.musicbrainz_data
}) })
end end
error ->
error
end end
end end