Skip to main content

lib/rocksky/artist.ex

defmodule Rocksky.Artist do
  @moduledoc "`app.rocksky.artist.*` endpoints."

  alias Rocksky.HTTP

  @doc "Fetch an artist by AT-URI (`:uri`)."
  def get_artist(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.artist.getArtist", params)

  @doc "List artists. Params: `:limit`, `:offset`, `:names` (list/CSV), `:genre`."
  def get_artists(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.artist.getArtists", params)

  @doc "Albums by an artist. Params: `:uri`."
  def get_artist_albums(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.artist.getArtistAlbums", params)

  @doc "Tracks by an artist. Params: `:uri`, `:limit`, `:offset`."
  def get_artist_tracks(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.artist.getArtistTracks", params)

  @doc "All-time listeners for an artist. Params: `:uri`, `:limit`, `:offset`."
  def get_artist_listeners(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.artist.getArtistListeners", params)

  @doc "Recent listeners for an artist. Params: `:uri`, `:limit`, `:offset`."
  def get_artist_recent_listeners(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.artist.getArtistRecentListeners", params)
end