Add Transform.new/1

This commit is contained in:
Claudio Ortolina
2025-09-19 23:58:09 +03:00
parent 2e8399c44b
commit c5d856fdd8
4 changed files with 6 additions and 4 deletions
+2
View File
@@ -5,6 +5,8 @@ defmodule MusicLibrary.Assets.Transform do
@type t :: %__MODULE__{} @type t :: %__MODULE__{}
@type payload :: String.t() @type payload :: String.t()
def new(attrs \\ %{}), do: struct!(__MODULE__, attrs)
@doc """ @doc """
iex> alias MusicLibrary.Assets.Transform iex> alias MusicLibrary.Assets.Transform
iex> transform = %Transform{hash: "abc123", width: 300} iex> transform = %Transform{hash: "abc123", width: 300}
@@ -10,7 +10,7 @@ defmodule MusicLibraryWeb.ArtistComponents do
def artist_image(assigns) do def artist_image(assigns) do
payload = payload =
%Transform{hash: assigns.image_hash, width: assigns.width} Transform.new(hash: assigns.image_hash, width: assigns.width)
|> Transform.encode!() |> Transform.encode!()
assigns = assign(assigns, :payload, payload) assigns = assign(assigns, :payload, payload)
@@ -12,7 +12,7 @@ defmodule MusicLibraryWeb.RecordComponents do
def record_cover(assigns) do def record_cover(assigns) do
payload = payload =
%Transform{hash: assigns.record.cover_hash, width: assigns.width} Transform.new(hash: assigns.record.cover_hash, width: assigns.width)
|> Transform.encode!() |> Transform.encode!()
assigns = assign(assigns, :payload, payload) assigns = assign(assigns, :payload, payload)
@@ -21,8 +21,8 @@ defmodule MusicLibraryWeb.CollectionJSON do
id: record.id, id: record.id,
artists: Enum.map(record.artists, & &1.name), artists: Enum.map(record.artists, & &1.name),
title: record.title, title: record.title,
cover_url: url(~p"/api/assets/#{%Transform{hash: record.cover_hash}}"), cover_url: url(~p"/api/assets/#{Transform.new(hash: record.cover_hash)}"),
thumb_url: url(~p"/api/assets/#{%Transform{hash: record.cover_hash, width: 480}}") thumb_url: url(~p"/api/assets/#{Transform.new(hash: record.cover_hash, width: 480)}")
} }
end end
end end