From 949fdb71380734df7caf394e1a309707e57402a7 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Fri, 14 Feb 2025 07:40:34 +0000 Subject: [PATCH] Formalize search_release_by_barcode/2 callback --- lib/music_brainz/api_behaviour.ex | 3 +++ lib/music_brainz/api_impl.ex | 1 + 2 files changed, 4 insertions(+) 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"