-module(rocksky@album).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/album.gleam").
-export([get_album/1, get_albums/0, get_album_tracks/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.album.*` — album catalogue.\n").
-file("src/rocksky/album.gleam", 10).
?DOC(" `app.rocksky.album.getAlbum` — fetch an album by AT-URI.\n").
-spec get_album(binary()) -> rocksky:request(rocksky@generated@types:album_view_basic()).
get_album(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.album.getAlbum"/utf8>>,
rocksky@decoders:album()
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/album.gleam", 16).
?DOC(" `app.rocksky.album.getAlbums` — paginated album list.\n").
-spec get_albums() -> rocksky:request(list(rocksky@generated@types:album_view_basic())).
get_albums() ->
rocksky:'query'(
<<"app.rocksky.album.getAlbums"/utf8>>,
rocksky@decoders:unwrap(<<"albums"/utf8>>, rocksky@decoders:album())
).
-file("src/rocksky/album.gleam", 24).
?DOC(" `app.rocksky.album.getAlbumTracks` — tracks for an album.\n").
-spec get_album_tracks(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_album_tracks(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.album.getAlbumTracks"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).