Define essential record fields

This commit is contained in:
Claudio Ortolina
2024-11-10 16:27:15 +00:00
parent 0e05c3cfa9
commit bd8f4cc979
2 changed files with 15 additions and 7 deletions
+1 -3
View File
@@ -37,13 +37,11 @@ defmodule MusicLibrary.Collection do
end
def get_latest_record! do
fields = Records.minimal_record_fields()
q =
from r in base_search(),
order_by: [desc: r.purchased_at],
limit: 1,
select: ^fields
select: ^Records.essential_fields()
Repo.one!(q)
end
+14 -4
View File
@@ -8,9 +8,19 @@ defmodule MusicLibrary.Records do
alias MusicLibrary.Records.{Record, SearchParser}
@fields [:id, :type, :artists, :format, :title, :release, :genres, :musicbrainz_id, :cover_hash]
def minimal_record_fields, do: @fields
def essential_fields do
[
:id,
:type,
:artists,
:format,
:title,
:release,
:genres,
:musicbrainz_id,
:cover_hash
]
end
def search_records(initial_search, query, opts) do
limit = Keyword.fetch!(opts, :limit)
@@ -21,7 +31,7 @@ defmodule MusicLibrary.Records do
|> build_search(query)
|> limit(^limit)
|> offset(^offset)
|> select(^@fields)
|> select(^essential_fields())
Repo.all(search)
end