Refactor function to remove nested error handling
This commit is contained in:
@@ -46,29 +46,21 @@ 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
|
with {:ok, discogs_artist} <- Discogs.get_artist(discogs_id) do
|
||||||
case Discogs.get_artist(discogs_id) do
|
|
||||||
{:ok, discogs_artist} ->
|
|
||||||
create_artist_info(%{
|
|
||||||
id: musicbrainz_artist.id,
|
|
||||||
musicbrainz_data: musicbrainz_artist.musicbrainz_data,
|
|
||||||
discogs_data: discogs_artist
|
|
||||||
})
|
|
||||||
|
|
||||||
error ->
|
|
||||||
error
|
|
||||||
end
|
|
||||||
else
|
|
||||||
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
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
else
|
||||||
error ->
|
create_artist_info(%{
|
||||||
error
|
id: musicbrainz_artist.id,
|
||||||
|
musicbrainz_data: musicbrainz_artist.musicbrainz_data
|
||||||
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user