diff --git a/lib/music_brainz/api_behaviour.ex b/lib/music_brainz/api_behaviour.ex index 6ac0d1ab..43b97916 100644 --- a/lib/music_brainz/api_behaviour.ex +++ b/lib/music_brainz/api_behaviour.ex @@ -2,6 +2,7 @@ defmodule MusicBrainz.APIBehaviour do @type musicbrainz_id :: String.t() @type config :: MusicBrainz.Config.t() @type limit :: pos_integer() + @type barcode :: String.t() @callback get_release_group(musicbrainz_id, config) :: {:ok, map()} | {:error, String.t()} @@ -12,6 +13,8 @@ defmodule MusicBrainz.APIBehaviour do @callback search_release_group(String.t(), Keyword.t(), config) :: {:ok, [map()]} | {:error, String.t()} + @callback search_release_by_barcode(barcode, config) :: {:ok, [map()]} | {:error, String.t()} + @callback get_cover_art({:musicbrainz_id, musicbrainz_id()} | {:url, String.t()}, config) :: {:ok, binary()} | {:error, String.t()} end diff --git a/lib/music_brainz/api_impl.ex b/lib/music_brainz/api_impl.ex index 3e8f5756..e38e4a81 100644 --- a/lib/music_brainz/api_impl.ex +++ b/lib/music_brainz/api_impl.ex @@ -305,6 +305,7 @@ defmodule MusicBrainz.APIImpl do json_get(url, config) end + @impl true def search_release_by_barcode(barcode, config) do url = @base_url <> "/release?query=barcode:#{barcode}&fmt=json"