Packages

A Gleam library for building Discord webhook payloads safely.

Current section

Files

Jump to
kitazith src kitazith@allowed_mentions.erl
Raw

src/kitazith@allowed_mentions.erl

-module(kitazith@allowed_mentions).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kitazith/allowed_mentions.gleam").
-export([new/0, with_parse/2, with_roles/2, with_users/2, with_replied_user/2, to_json/1]).
-export_type([allowed_mentions/0, allowed_mention/0]).
-type allowed_mentions() :: {allowed_mentions,
gleam@option:option(list(allowed_mention())),
gleam@option:option(list(kitazith@snowflake:snowflake())),
gleam@option:option(list(kitazith@snowflake:snowflake())),
gleam@option:option(boolean())}.
-type allowed_mention() :: roles | users | everyone.
-file("src/kitazith/allowed_mentions.gleam", 28).
-spec new() -> allowed_mentions().
new() ->
{allowed_mentions, none, none, none, none}.
-file("src/kitazith/allowed_mentions.gleam", 32).
-spec with_parse(allowed_mentions(), list(allowed_mention())) -> allowed_mentions().
with_parse(Mentions, Parse) ->
{allowed_mentions,
{some, Parse},
erlang:element(3, Mentions),
erlang:element(4, Mentions),
erlang:element(5, Mentions)}.
-file("src/kitazith/allowed_mentions.gleam", 39).
-spec with_roles(allowed_mentions(), list(kitazith@snowflake:snowflake())) -> allowed_mentions().
with_roles(Mentions, Roles) ->
{allowed_mentions,
erlang:element(2, Mentions),
{some, Roles},
erlang:element(4, Mentions),
erlang:element(5, Mentions)}.
-file("src/kitazith/allowed_mentions.gleam", 46).
-spec with_users(allowed_mentions(), list(kitazith@snowflake:snowflake())) -> allowed_mentions().
with_users(Mentions, Users) ->
{allowed_mentions,
erlang:element(2, Mentions),
erlang:element(3, Mentions),
{some, Users},
erlang:element(5, Mentions)}.
-file("src/kitazith/allowed_mentions.gleam", 53).
-spec with_replied_user(allowed_mentions(), boolean()) -> allowed_mentions().
with_replied_user(Mentions, Replied_user) ->
{allowed_mentions,
erlang:element(2, Mentions),
erlang:element(3, Mentions),
erlang:element(4, Mentions),
{some, Replied_user}}.
-file("src/kitazith/allowed_mentions.gleam", 75).
-spec allowed_mention_to_json(allowed_mention()) -> gleam@json:json().
allowed_mention_to_json(Mention) ->
case Mention of
roles ->
gleam@json:string(<<"roles"/utf8>>);
users ->
gleam@json:string(<<"users"/utf8>>);
everyone ->
gleam@json:string(<<"everyone"/utf8>>)
end.
-file("src/kitazith/allowed_mentions.gleam", 60).
-spec to_json(allowed_mentions()) -> gleam@json:json().
to_json(M) ->
kitazith@internal@json_helper:object_omit_none(
[kitazith@internal@json_helper:optional(
<<"parse"/utf8>>,
erlang:element(2, M),
fun(Parse) ->
gleam@json:array(Parse, fun allowed_mention_to_json/1)
end
),
kitazith@internal@json_helper:optional(
<<"roles"/utf8>>,
erlang:element(3, M),
fun(Roles) ->
gleam@json:array(Roles, fun kitazith@snowflake:to_json/1)
end
),
kitazith@internal@json_helper:optional(
<<"users"/utf8>>,
erlang:element(4, M),
fun(Users) ->
gleam@json:array(Users, fun kitazith@snowflake:to_json/1)
end
),
kitazith@internal@json_helper:optional(
<<"replied_user"/utf8>>,
erlang:element(5, M),
fun gleam@json:bool/1
)]
).