Files
music_library/lib/music_library/records.ex
T
2024-09-20 10:05:49 +01:00

55 lines
1.0 KiB
Elixir

defmodule MusicLibrary.Records do
import Ecto.Query, warn: false
alias MusicLibrary.Repo
alias MusicLibrary.Records.Record
def list_records(opts \\ []) do
limit = Keyword.get(opts, :limit, 20)
offset = Keyword.get(opts, :offset, 0)
q =
from r in Record,
order_by: r.artists[0]["sort_name"],
limit: ^limit,
offset: ^offset
Repo.all(q)
end
def count_records do
Repo.aggregate(Record, :count)
end
def get_record!(id), do: Repo.get!(Record, id)
def get_image!(id) do
q =
from r in Record,
where: r.id == ^id,
select: r.image_data
Repo.one!(q)
end
def create_record(attrs \\ %{}) do
%Record{}
|> Record.changeset(attrs)
|> Repo.insert()
end
def update_record(%Record{} = record, attrs) do
record
|> Record.changeset(attrs)
|> Repo.update()
end
def delete_record(%Record{} = record) do
Repo.delete(record)
end
def change_record(%Record{} = record, attrs \\ %{}) do
Record.changeset(record, attrs)
end
end