diff --git a/lib/music_library/records.ex b/lib/music_library/records.ex index 83cef155..66307950 100644 --- a/lib/music_library/records.ex +++ b/lib/music_library/records.ex @@ -32,6 +32,12 @@ defmodule MusicLibrary.Records do Repo.one!(q) end + def search_release_group(query, opts \\ []) do + limit = Keyword.get(opts, :limit, 20) + offset = Keyword.get(opts, :offset, 0) + MusicBrainz.search_release_group(query, limit: limit, offset: offset) + end + def import_from_musicbrainz(musicbrainz_id) do with {:ok, release_group} <- MusicBrainz.get_release_group(musicbrainz_id), {:ok, image_data} <- MusicBrainz.get_cover_art(musicbrainz_id), diff --git a/lib/music_library/records/music_brainz.ex b/lib/music_library/records/music_brainz.ex index 8ee35c0b..6906288e 100644 --- a/lib/music_library/records/music_brainz.ex +++ b/lib/music_library/records/music_brainz.ex @@ -148,9 +148,9 @@ defmodule MusicLibrary.Records.MusicBrainz do ] } """ - def search_release_group(query, opts \\ []) do - limit = Keyword.get(opts, :limit, 20) - offset = Keyword.get(opts, :offset, 0) + def search_release_group(query, opts) do + limit = Keyword.fetch!(opts, :limit) + offset = Keyword.fetch!(opts, :offset) qs = [ query: query, diff --git a/lib/music_library_web/live/record_live/search_component.ex b/lib/music_library_web/live/record_live/search_component.ex index 056ab379..53ab8cae 100644 --- a/lib/music_library_web/live/record_live/search_component.ex +++ b/lib/music_library_web/live/record_live/search_component.ex @@ -1,7 +1,8 @@ defmodule MusicLibraryWeb.RecordLive.SearchComponent do use MusicLibraryWeb, :live_component - alias MusicLibrary.Records.MusicBrainz + alias MusicLibrary.Records + @impl true def render(assigns) do ~H""" @@ -32,8 +33,7 @@ defmodule MusicLibraryWeb.RecordLive.SearchComponent do ~H"""
  • @@ -85,7 +85,7 @@ defmodule MusicLibraryWeb.RecordLive.SearchComponent do defp search(""), do: {:ok, []} defp search(query) do - case MusicBrainz.search_release_group(query) do + case Records.search_release_group(query, limit: 10) do {:ok, result} -> {:ok, Enum.map(result["release-groups"], fn rg ->