Streamline function implementation (no double negative)

This commit is contained in:
Claudio Ortolina
2026-05-13 20:14:01 +01:00
parent 3406561a44
commit 533fe8a8c4
+9 -4
View File
@@ -81,12 +81,9 @@ defmodule MusicLibrary.Records.Enrichment do
@spec extract_colors(Record.t()) :: {:ok, Record.t()} | {:error, term()} @spec extract_colors(Record.t()) :: {:ok, Record.t()} | {:error, term()}
def extract_colors(record) do def extract_colors(record) do
with asset when not is_nil(asset) <- Assets.get(record.cover_hash), with {:ok, asset} <- get_asset(record.cover_hash),
{:ok, colors} <- @color_extractor.extract_dominant_colors(asset.content) do {:ok, colors} <- @color_extractor.extract_dominant_colors(asset.content) do
Records.update_record(record, %{dominant_colors: colors}) Records.update_record(record, %{dominant_colors: colors})
else
nil -> {:error, :asset_not_found}
error -> error
end end
end end
@@ -125,4 +122,12 @@ defmodule MusicLibrary.Records.Enrichment do
defp record_meta(record) do defp record_meta(record) do
%{title: record.title, artists: Enum.map(record.artists, & &1.name)} %{title: record.title, artists: Enum.map(record.artists, & &1.name)}
end end
defp get_asset(cover_hash) do
if asset = Assets.get(cover_hash) do
{:ok, asset}
else
{:error, :asset_not_found}
end
end
end end