Skip to main content

src/rocksky@apikey.erl

-module(rocksky@apikey).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/apikey.gleam").
-export([create/1, with_description/2, list_keys/0, remove/1, update/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.apikey.*` — manage personal API keys.\n").

-file("src/rocksky/apikey.gleam", 12).
?DOC(
    " `app.rocksky.apikey.createApikey` — provision a new API key. Add a blurb\n"
    " via `with_description` before sending.\n"
).
-spec create(binary()) -> rocksky:request(rocksky@types:api_key()).
create(Name) ->
    Body = gleam@json:object([{<<"name"/utf8>>, gleam@json:string(Name)}]),
    _pipe = rocksky:procedure(
        <<"app.rocksky.apikey.createApikey"/utf8>>,
        rocksky@decoders:api_key()
    ),
    _pipe@1 = rocksky:body(_pipe, Body),
    rocksky:param(_pipe@1, <<"name"/utf8>>, Name).

-file("src/rocksky/apikey.gleam", 22).
?DOC(" Attach an optional description to a `create` or `update` request.\n").
-spec with_description(rocksky:request(HPE), binary()) -> rocksky:request(HPE).
with_description(Req, Description) ->
    rocksky:param(Req, <<"description"/utf8>>, Description).

-file("src/rocksky/apikey.gleam", 27).
?DOC(" `app.rocksky.apikey.getApikeys` — list current keys.\n").
-spec list_keys() -> rocksky:request(gleam@dynamic:dynamic_()).
list_keys() ->
    rocksky:'query'(
        <<"app.rocksky.apikey.getApikeys"/utf8>>,
        {decoder, fun gleam@dynamic@decode:decode_dynamic/1}
    ).

-file("src/rocksky/apikey.gleam", 32).
?DOC(" `app.rocksky.apikey.removeApikey` — revoke a key.\n").
-spec remove(binary()) -> rocksky:request(rocksky@types:api_key()).
remove(Id) ->
    _pipe = rocksky:procedure(
        <<"app.rocksky.apikey.removeApikey"/utf8>>,
        rocksky@decoders:api_key()
    ),
    rocksky:param(_pipe, <<"id"/utf8>>, Id).

-file("src/rocksky/apikey.gleam", 38).
?DOC(" `app.rocksky.apikey.updateApikey` — rename or re-describe a key.\n").
-spec update(binary(), binary()) -> rocksky:request(rocksky@types:api_key()).
update(Id, Name) ->
    Body = gleam@json:object(
        [{<<"id"/utf8>>, gleam@json:string(Id)},
            {<<"name"/utf8>>, gleam@json:string(Name)}]
    ),
    _pipe = rocksky:procedure(
        <<"app.rocksky.apikey.updateApikey"/utf8>>,
        rocksky@decoders:api_key()
    ),
    rocksky:body(_pipe, Body).