Define essential record fields
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user