Define essential record fields
This commit is contained in:
@@ -37,13 +37,11 @@ defmodule MusicLibrary.Collection do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def get_latest_record! do
|
def get_latest_record! do
|
||||||
fields = Records.minimal_record_fields()
|
|
||||||
|
|
||||||
q =
|
q =
|
||||||
from r in base_search(),
|
from r in base_search(),
|
||||||
order_by: [desc: r.purchased_at],
|
order_by: [desc: r.purchased_at],
|
||||||
limit: 1,
|
limit: 1,
|
||||||
select: ^fields
|
select: ^Records.essential_fields()
|
||||||
|
|
||||||
Repo.one!(q)
|
Repo.one!(q)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,9 +8,19 @@ defmodule MusicLibrary.Records do
|
|||||||
|
|
||||||
alias MusicLibrary.Records.{Record, SearchParser}
|
alias MusicLibrary.Records.{Record, SearchParser}
|
||||||
|
|
||||||
@fields [:id, :type, :artists, :format, :title, :release, :genres, :musicbrainz_id, :cover_hash]
|
def essential_fields do
|
||||||
|
[
|
||||||
def minimal_record_fields, do: @fields
|
:id,
|
||||||
|
:type,
|
||||||
|
:artists,
|
||||||
|
:format,
|
||||||
|
:title,
|
||||||
|
:release,
|
||||||
|
:genres,
|
||||||
|
:musicbrainz_id,
|
||||||
|
:cover_hash
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
def search_records(initial_search, query, opts) do
|
def search_records(initial_search, query, opts) do
|
||||||
limit = Keyword.fetch!(opts, :limit)
|
limit = Keyword.fetch!(opts, :limit)
|
||||||
@@ -21,7 +31,7 @@ defmodule MusicLibrary.Records do
|
|||||||
|> build_search(query)
|
|> build_search(query)
|
||||||
|> limit(^limit)
|
|> limit(^limit)
|
||||||
|> offset(^offset)
|
|> offset(^offset)
|
||||||
|> select(^@fields)
|
|> select(^essential_fields())
|
||||||
|
|
||||||
Repo.all(search)
|
Repo.all(search)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user