Store artist infos
This commit is contained in:
@@ -2,7 +2,7 @@ defmodule MusicLibrary.Artists do
|
||||
import Ecto.Query, warn: false
|
||||
alias MusicLibrary.Repo
|
||||
|
||||
alias MusicLibrary.Records.{ArtistRecord, Record}
|
||||
alias MusicLibrary.Records.{ArtistInfo, ArtistRecord, Record}
|
||||
|
||||
def get_artist!(musicbrainz_id) do
|
||||
q =
|
||||
@@ -44,6 +44,20 @@ defmodule MusicLibrary.Artists do
|
||||
q |> Repo.all()
|
||||
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]})
|
||||
end
|
||||
end
|
||||
|
||||
defp get_collected_artist_ids do
|
||||
q =
|
||||
from ar in ArtistRecord,
|
||||
|
||||
Reference in New Issue
Block a user