Store artist infos async

This commit is contained in:
Claudio Ortolina
2025-04-26 14:03:33 +01:00
parent ece877086f
commit 34e789fa76
2 changed files with 20 additions and 0 deletions
+10
View File
@@ -3,6 +3,7 @@ defmodule MusicLibrary.Artists do
alias MusicLibrary.Repo
alias MusicLibrary.Records.{ArtistInfo, ArtistRecord, Record}
alias MusicLibrary.{BackgroundRepo, Worker}
def get_artist!(musicbrainz_id) do
q =
@@ -58,6 +59,15 @@ defmodule MusicLibrary.Artists do
end
end
def fetch_artist_info_async(artist_id) do
meta = %{}
params = %{"id" => artist_id}
params
|> Worker.FetchArtistInfo.new(meta: meta)
|> BackgroundRepo.insert()
end
defp get_collected_artist_ids do
q =
from ar in ArtistRecord,
@@ -0,0 +1,10 @@
defmodule MusicLibrary.Worker.FetchArtistInfo do
use Oban.Worker, queue: :default, max_attempts: 3
@impl Oban.Worker
def perform(%Oban.Job{args: %{"id" => artist_id}}) do
with {:ok, _artist_info} <- MusicLibrary.Artists.fetch_artist_info(artist_id) do
:ok
end
end
end