Pick color extraction strategy from dropdown
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
defmodule MusicLibrary.Worker.ExtractColors do
|
||||
use Oban.Worker, queue: :heavy_writes, max_attempts: 3
|
||||
|
||||
alias MusicLibrary.{Colors, Records}
|
||||
|
||||
@impl Oban.Worker
|
||||
def perform(%Oban.Job{args: %{"id" => record_id, "method" => method}}) do
|
||||
record = MusicLibrary.Records.get_record!(record_id)
|
||||
method = String.to_existing_atom(method)
|
||||
|
||||
with {:ok, colors} <- Colors.extract_colors(record.cover_data, method),
|
||||
{:ok, updated_record} <- Records.update_record(record, %{dominant_colors: colors}) do
|
||||
MusicLibrary.Records.notify_update(updated_record)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,12 +0,0 @@
|
||||
defmodule MusicLibrary.Worker.GenerateDominantColors do
|
||||
use Oban.Worker, queue: :heavy_writes, max_attempts: 3
|
||||
|
||||
@impl Oban.Worker
|
||||
def perform(%Oban.Job{args: %{"id" => record_id}}) do
|
||||
record = MusicLibrary.Records.get_record!(record_id)
|
||||
|
||||
with {:ok, updated_record} <- MusicLibrary.Records.generate_dominant_colors(record) do
|
||||
MusicLibrary.Records.notify_update(updated_record)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user