Files
music_library/lib/music_library_web/controllers/collection_json.ex
T
2025-10-24 20:06:23 +01:00

35 lines
805 B
Elixir

defmodule MusicLibraryWeb.CollectionJSON do
use MusicLibraryWeb, :json
alias MusicLibrary.Assets.Transform
def show(%{record: record}) do
record(record)
end
def index(%{records: records, total: total, limit: limit, offset: offset}) do
%{
total: total,
limit: limit,
offset: offset,
records: Enum.map(records, &record/1)
}
end
def on_this_day(%{records: records}) do
%{
records: Enum.map(records, &record/1)
}
end
defp record(record) do
%{
id: record.id,
artists: Enum.map(record.artists, & &1.name),
title: record.title,
cover_url: url(~p"/api/assets/#{Transform.new(hash: record.cover_hash)}"),
thumb_url: url(~p"/api/assets/#{Transform.new(hash: record.cover_hash, width: 480)}")
}
end
end