diff --git a/lib/music_library/artists.ex b/lib/music_library/artists.ex index 4fcaf714..5f4c5ea8 100644 --- a/lib/music_library/artists.ex +++ b/lib/music_library/artists.ex @@ -100,6 +100,15 @@ defmodule MusicLibrary.Artists do |> BackgroundRepo.insert() end + def fetch_image_async(artist_id) do + meta = %{} + params = %{"id" => artist_id} + + params + |> Worker.FetchArtistImage.new(meta: meta) + |> BackgroundRepo.insert() + end + def get_image(artist_id) do q = from ai in ArtistInfo, diff --git a/lib/music_library/worker/fetch_artist_image.ex b/lib/music_library/worker/fetch_artist_image.ex new file mode 100644 index 00000000..868a8e9e --- /dev/null +++ b/lib/music_library/worker/fetch_artist_image.ex @@ -0,0 +1,10 @@ +defmodule MusicLibrary.Worker.FetchArtistImage 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_image(artist_id) do + :ok + end + end +end