-module(rocksky@playlist).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/playlist.gleam").
-export([create/1, with_description/2, get_playlist/1, get_playlists/0, remove/1, start/1, with_shuffle/2, with_position/2, insert_directory/2, insert_files/2]).
-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.playlist.*` — manage and read playlists.\n").
-file("src/rocksky/playlist.gleam", 8).
?DOC(" `app.rocksky.playlist.createPlaylist`. Add `with_description` for a blurb.\n").
-spec create(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
create(Name) ->
_pipe = rocksky:procedure(
<<"app.rocksky.playlist.createPlaylist"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"name"/utf8>>, Name).
-file("src/rocksky/playlist.gleam", 13).
-spec with_description(rocksky:request(HXF), binary()) -> rocksky:request(HXF).
with_description(Req, Description) ->
rocksky:param(Req, <<"description"/utf8>>, Description).
-file("src/rocksky/playlist.gleam", 18).
?DOC(" `app.rocksky.playlist.getPlaylist` — fetch a playlist by AT-URI.\n").
-spec get_playlist(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_playlist(Uri) ->
_pipe = rocksky:'query'(
<<"app.rocksky.playlist.getPlaylist"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/playlist.gleam", 24).
?DOC(" `app.rocksky.playlist.getPlaylists` — paginated playlist catalogue.\n").
-spec get_playlists() -> rocksky:request(gleam@dynamic:dynamic_()).
get_playlists() ->
rocksky:'query'(
<<"app.rocksky.playlist.getPlaylists"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
).
-file("src/rocksky/playlist.gleam", 29).
?DOC(" `app.rocksky.playlist.removePlaylist`.\n").
-spec remove(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
remove(Uri) ->
_pipe = rocksky:procedure(
<<"app.rocksky.playlist.removePlaylist"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/playlist.gleam", 35).
?DOC(" `app.rocksky.playlist.startPlaylist` — begin playback of a playlist.\n").
-spec start(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
start(Uri) ->
_pipe = rocksky:procedure(
<<"app.rocksky.playlist.startPlaylist"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"uri"/utf8>>, Uri).
-file("src/rocksky/playlist.gleam", 40).
-spec with_shuffle(rocksky:request(HXM), boolean()) -> rocksky:request(HXM).
with_shuffle(Req, Shuffle) ->
rocksky:bool_param(Req, <<"shuffle"/utf8>>, Shuffle).
-file("src/rocksky/playlist.gleam", 44).
-spec with_position(rocksky:request(HXP), integer()) -> rocksky:request(HXP).
with_position(Req, Position) ->
rocksky:int_param(Req, <<"position"/utf8>>, Position).
-file("src/rocksky/playlist.gleam", 49).
?DOC(" `app.rocksky.playlist.insertDirectory`.\n").
-spec insert_directory(binary(), binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
insert_directory(Uri, Directory) ->
_pipe = rocksky:procedure(
<<"app.rocksky.playlist.insertDirectory"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
_pipe@1 = rocksky:param(_pipe, <<"uri"/utf8>>, Uri),
rocksky:param(_pipe@1, <<"directory"/utf8>>, Directory).
-file("src/rocksky/playlist.gleam", 59).
?DOC(" `app.rocksky.playlist.insertFiles`.\n").
-spec insert_files(binary(), list(binary())) -> rocksky:request(gleam@dynamic:dynamic_()).
insert_files(Uri, Files) ->
_pipe = rocksky:procedure(
<<"app.rocksky.playlist.insertFiles"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
_pipe@1 = rocksky:param(_pipe, <<"uri"/utf8>>, Uri),
rocksky:repeated_param(_pipe@1, <<"files"/utf8>>, Files).