Files
music_library/lib/last_fm/api_behaviour.ex
T
2024-12-17 20:44:31 +00:00

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