13 lines
549 B
Elixir
13 lines
549 B
Elixir
defmodule LastFm.APIBehaviour do
|
|
alias LastFm.{Artist, Config, Track}
|
|
|
|
@type musicbrainz_id :: String.t()
|
|
@type name :: String.t()
|
|
@type config :: Config.t()
|
|
@callback get_recent_tracks(config) :: {:ok, [Track.t()]} | {:error, String.t()}
|
|
@callback get_artist_info({:musicbrainz_id, musicbrainz_id} | {:name, name}, config) ::
|
|
{:ok, Artist.t()} | {:error, String.t()}
|
|
@callback get_similar_artists({:musicbrainz_id, musicbrainz_id} | {:name, name}, config) ::
|
|
{:ok, [Artist.t()]} | {:error, String.t()}
|
|
end
|