Skip to main content

src/rocksky@like.erl

-module(rocksky@like).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/like.gleam").
-export([like_song/1, dislike_song/1, like_shout/1, dislike_shout/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.like.*` — like / dislike songs and shouts.\n").

-file("src/rocksky/like.gleam", 8).
-spec uri_body(binary()) -> gleam@json:json().
uri_body(Uri) ->
    gleam@json:object([{<<"uri"/utf8>>, gleam@json:string(Uri)}]).

-file("src/rocksky/like.gleam", 13).
?DOC(" `app.rocksky.like.likeSong` — like the song at `uri`.\n").
-spec like_song(binary()) -> rocksky:request(rocksky@generated@types:song_view_basic()).
like_song(Uri) ->
    _pipe = rocksky:procedure(
        <<"app.rocksky.like.likeSong"/utf8>>,
        rocksky@decoders:song()
    ),
    rocksky:body(_pipe, uri_body(Uri)).

-file("src/rocksky/like.gleam", 19).
?DOC(" `app.rocksky.like.dislikeSong` — remove a like from the song at `uri`.\n").
-spec dislike_song(binary()) -> rocksky:request(rocksky@generated@types:song_view_basic()).
dislike_song(Uri) ->
    _pipe = rocksky:procedure(
        <<"app.rocksky.like.dislikeSong"/utf8>>,
        rocksky@decoders:song()
    ),
    rocksky:body(_pipe, uri_body(Uri)).

-file("src/rocksky/like.gleam", 25).
?DOC(" `app.rocksky.like.likeShout` — like the shout at `uri`.\n").
-spec like_shout(binary()) -> rocksky:request(rocksky@types:shout()).
like_shout(Uri) ->
    _pipe = rocksky:procedure(
        <<"app.rocksky.like.likeShout"/utf8>>,
        rocksky@decoders:shout()
    ),
    rocksky:body(_pipe, uri_body(Uri)).

-file("src/rocksky/like.gleam", 31).
?DOC(" `app.rocksky.like.dislikeShout` — remove a like from the shout at `uri`.\n").
-spec dislike_shout(binary()) -> rocksky:request(rocksky@types:shout()).
dislike_shout(Uri) ->
    _pipe = rocksky:procedure(
        <<"app.rocksky.like.dislikeShout"/utf8>>,
        rocksky@decoders:shout()
    ),
    rocksky:body(_pipe, uri_body(Uri)).