-module(rocksky@artist).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/artist.gleam").
-export([get_artist/1, get_artists/0, with_names/2, get_artist_albums/1, get_artist_tracks/1, get_artist_listeners/1, get_artist_recent_listeners/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(" `app.rocksky.artist.*` — artist catalogue.\n").
-file("src/rocksky/artist.gleam", 10).
?DOC(" `app.rocksky.artist.getArtist` — fetch an artist by AT-URI.\n").
-spec get_artist(binary()) -> rocksky:request(rocksky@generated@types:artist_view_basic()).
get_artist(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.artist.getArtist"/utf8>>,
rocksky@decoders:artist()
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/artist.gleam", 18).
?DOC(
" `app.rocksky.artist.getArtists` — paginated artist list.\n"
" Use `rocksky.limit`, `rocksky.offset`, `rocksky.genre`, or\n"
" `with_names` to refine.\n"
).
-spec get_artists() -> rocksky:request(list(rocksky@generated@types:artist_view_basic())).
get_artists() ->
rocksky:'query'(
<<"app.rocksky.artist.getArtists"/utf8>>,
rocksky@decoders:unwrap(<<"artists"/utf8>>, rocksky@decoders:artist())
).
-file("src/rocksky/artist.gleam", 26).
?DOC(" Filter `get_artists` by a comma-separated `names` parameter.\n").
-spec with_names(rocksky:request(HPZ), binary()) -> rocksky:request(HPZ).
with_names(Req, Names) ->
rocksky:param(Req, <<"names"/utf8>>, Names).
-file("src/rocksky/artist.gleam", 31).
?DOC(" `app.rocksky.artist.getArtistAlbums` — albums for an artist.\n").
-spec get_artist_albums(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_artist_albums(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.artist.getArtistAlbums"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/artist.gleam", 37).
?DOC(" `app.rocksky.artist.getArtistTracks` — tracks for an artist.\n").
-spec get_artist_tracks(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_artist_tracks(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.artist.getArtistTracks"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/artist.gleam", 43).
?DOC(" `app.rocksky.artist.getArtistListeners` — top listeners for an artist.\n").
-spec get_artist_listeners(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_artist_listeners(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.artist.getArtistListeners"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/artist.gleam", 49).
?DOC(" `app.rocksky.artist.getArtistRecentListeners` — recent listeners.\n").
-spec get_artist_recent_listeners(binary()) -> rocksky:request(list(rocksky@generated@types:song_recent_listener_view())).
get_artist_recent_listeners(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.artist.getArtistRecentListeners"/utf8>>,
rocksky@decoders:unwrap(
<<"listeners"/utf8>>,
rocksky@decoders:listener()
)
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).