21 lines
827 B
Elixir
21 lines
827 B
Elixir
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()}
|
|
|
|
@callback get_releases(musicbrainz_id, limit, config) :: {:ok, map()} | {:error, String.t()}
|
|
|
|
@callback get_release(musicbrainz_id, config) :: {:ok, map()} | {:error, String.t()}
|
|
|
|
@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
|