Current section
Files
Jump to
Current section
Files
src/kitazith@webhook@edit.erl
-module(kitazith@webhook@edit).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kitazith/webhook/edit.gleam").
-export([new/0, with_content/2, clear_content/1, with_embeds/2, clear_embeds/1, with_attachments/2, clear_attachments/1, with_components/2, clear_components/1, with_allowed_mentions/2, clear_allowed_mentions/1, with_flags/2, clear_flags/1, validate/1, validate_with_query/2, to_json/1, to_string/1, to_string_tree/1]).
-export_type([edit_field/1, edit_payload/0, edit_payload_flag/0]).
-type edit_field(FHP) :: omit | {set, FHP} | clear.
-type edit_payload() :: {edit_payload,
edit_field(binary()),
edit_field(list(kitazith@embed:embed())),
edit_field(list(kitazith@attachment:attachment())),
edit_field(list(kitazith@component:component())),
edit_field(kitazith@allowed_mentions:allowed_mentions()),
edit_field(list(edit_payload_flag()))}.
-type edit_payload_flag() :: suppress_embeds | is_components_v2.
-file("src/kitazith/webhook/edit.gleam", 66).
-spec new() -> edit_payload().
new() ->
{edit_payload, omit, omit, omit, omit, omit, omit}.
-file("src/kitazith/webhook/edit.gleam", 77).
-spec with_content(edit_payload(), binary()) -> edit_payload().
with_content(Payload, Content) ->
{edit_payload,
{set, Content},
erlang:element(3, Payload),
erlang:element(4, Payload),
erlang:element(5, Payload),
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 81).
-spec clear_content(edit_payload()) -> edit_payload().
clear_content(Payload) ->
{edit_payload,
clear,
erlang:element(3, Payload),
erlang:element(4, Payload),
erlang:element(5, Payload),
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 85).
-spec with_embeds(edit_payload(), list(kitazith@embed:embed())) -> edit_payload().
with_embeds(Payload, Embeds) ->
{edit_payload,
erlang:element(2, Payload),
{set, Embeds},
erlang:element(4, Payload),
erlang:element(5, Payload),
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 92).
-spec clear_embeds(edit_payload()) -> edit_payload().
clear_embeds(Payload) ->
{edit_payload,
erlang:element(2, Payload),
clear,
erlang:element(4, Payload),
erlang:element(5, Payload),
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 96).
-spec with_attachments(edit_payload(), list(kitazith@attachment:attachment())) -> edit_payload().
with_attachments(Payload, Attachments) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
{set, Attachments},
erlang:element(5, Payload),
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 103).
-spec clear_attachments(edit_payload()) -> edit_payload().
clear_attachments(Payload) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
clear,
erlang:element(5, Payload),
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 107).
-spec with_components(edit_payload(), list(kitazith@component:component())) -> edit_payload().
with_components(Payload, Components) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
erlang:element(4, Payload),
{set, Components},
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 114).
-spec clear_components(edit_payload()) -> edit_payload().
clear_components(Payload) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
erlang:element(4, Payload),
clear,
erlang:element(6, Payload),
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 118).
-spec with_allowed_mentions(
edit_payload(),
kitazith@allowed_mentions:allowed_mentions()
) -> edit_payload().
with_allowed_mentions(Payload, Mentions) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
erlang:element(4, Payload),
erlang:element(5, Payload),
{set, Mentions},
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 125).
-spec clear_allowed_mentions(edit_payload()) -> edit_payload().
clear_allowed_mentions(Payload) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
erlang:element(4, Payload),
erlang:element(5, Payload),
clear,
erlang:element(7, Payload)}.
-file("src/kitazith/webhook/edit.gleam", 129).
-spec with_flags(edit_payload(), list(edit_payload_flag())) -> edit_payload().
with_flags(Payload, Flags) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
erlang:element(4, Payload),
erlang:element(5, Payload),
erlang:element(6, Payload),
{set, Flags}}.
-file("src/kitazith/webhook/edit.gleam", 136).
-spec clear_flags(edit_payload()) -> edit_payload().
clear_flags(Payload) ->
{edit_payload,
erlang:element(2, Payload),
erlang:element(3, Payload),
erlang:element(4, Payload),
erlang:element(5, Payload),
erlang:element(6, Payload),
clear}.
-file("src/kitazith/webhook/edit.gleam", 330).
-spec components_v2_conflict_errors(edit_payload()) -> list(kitazith@validation:validation_error()).
components_v2_conflict_errors(Payload) ->
lists:append([case erlang:element(2, Payload) of
{set, _} ->
[{validation_error,
<<"content"/utf8>>,
{mutually_exclusive_with,
<<"flags[IsComponentsV2]"/utf8>>}}];
_ ->
[]
end, case erlang:element(3, Payload) of
{set, _} ->
[{validation_error,
<<"embeds"/utf8>>,
{mutually_exclusive_with,
<<"flags[IsComponentsV2]"/utf8>>}}];
_ ->
[]
end]).
-file("src/kitazith/webhook/edit.gleam", 320).
-spec contains_edit_payload_flag(list(edit_payload_flag()), edit_payload_flag()) -> boolean().
contains_edit_payload_flag(Flags, Target) ->
case Flags of
[] ->
false;
[Flag | Rest] ->
(Flag =:= Target) orelse contains_edit_payload_flag(Rest, Target)
end.
-file("src/kitazith/webhook/edit.gleam", 140).
-spec validate(edit_payload()) -> {ok, edit_payload()} |
{error, list(kitazith@validation:validation_error())}.
validate(Payload) ->
Attachment_filenames = case erlang:element(4, Payload) of
{set, Attachments} ->
{some,
kitazith@internal@validation@attachment:attachment_filenames(
Attachments
)};
clear ->
{some, []};
omit ->
none
end,
Components_require_v2 = case erlang:element(5, Payload) of
{set, Components} ->
kitazith@internal@validation@component:components_require_v2_flag(
Components
);
_ ->
false
end,
Explicitly_has_components_v2_flag = case erlang:element(7, Payload) of
{set, Flags} ->
contains_edit_payload_flag(Flags, is_components_v2);
_ ->
false
end,
Errors = lists:append([case erlang:element(2, Payload) of
{set, Content} ->
kitazith@internal@validation@common:validate_string_max_length(
<<"content"/utf8>>,
Content,
2000
);
_ ->
[]
end, case erlang:element(3, Payload) of
{set, Embeds} ->
kitazith@internal@validation@embed:validate_embeds(
<<"embeds"/utf8>>,
Embeds,
Attachment_filenames
);
_ ->
[]
end, case erlang:element(4, Payload) of
{set, Attachments@1} ->
kitazith@internal@validation@attachment:validate_attachments(
<<"attachments"/utf8>>,
Attachments@1
);
_ ->
[]
end, case erlang:element(5, Payload) of
{set, Components@1} ->
kitazith@internal@validation@component:validate_components(
<<"components"/utf8>>,
Components@1,
Attachment_filenames
);
_ ->
[]
end, case erlang:element(6, Payload) of
{set, Allowed_mentions} ->
kitazith@internal@validation@allowed_mentions:validate_allowed_mentions(
<<"allowed_mentions"/utf8>>,
Allowed_mentions
);
_ ->
[]
end, case erlang:element(7, Payload) of
{set, _} ->
[];
clear ->
[];
omit ->
[]
end, case {Components_require_v2, erlang:element(7, Payload)} of
{true, {set, _}} ->
case Explicitly_has_components_v2_flag of
true ->
[];
false ->
[{validation_error,
<<"flags"/utf8>>,
{requires_flag, <<"IsComponentsV2"/utf8>>}}]
end;
{_, _} ->
[]
end, case Explicitly_has_components_v2_flag of
true ->
components_v2_conflict_errors(Payload);
false ->
[]
end]),
case Errors of
[] ->
{ok, Payload};
_ ->
{error, Errors}
end.
-file("src/kitazith/webhook/edit.gleam", 308).
-spec validate_query(kitazith@webhook@edit_query:edit_query(), edit_payload()) -> list(kitazith@validation:validation_error()).
validate_query(_, _) ->
[].
-file("src/kitazith/webhook/edit.gleam", 237).
-spec validate_with_query(
edit_payload(),
kitazith@webhook@edit_query:edit_query()
) -> {ok, edit_payload()} |
{error, list(kitazith@validation:validation_error())}.
validate_with_query(Payload, Query) ->
kitazith@internal@validation@common:validate_with_query(
Payload,
Query,
fun validate/1,
fun validate_query/2
).
-file("src/kitazith/webhook/edit.gleam", 299).
-spec edit_payload_flag_to_message_flag(edit_payload_flag()) -> kitazith@flag:message_flag().
edit_payload_flag_to_message_flag(Edit_payload_flag) ->
case Edit_payload_flag of
suppress_embeds ->
suppress_embeds;
is_components_v2 ->
is_components_v2
end.
-file("src/kitazith/webhook/edit.gleam", 287).
-spec field(binary(), edit_field(FIA), fun((FIA) -> gleam@json:json())) -> gleam@option:option({binary(),
gleam@json:json()}).
field(Key, Value, Encoder) ->
case Value of
omit ->
none;
{set, Value@1} ->
{some, {Key, Encoder(Value@1)}};
clear ->
{some, {Key, gleam@json:null()}}
end.
-file("src/kitazith/webhook/edit.gleam", 249).
-spec to_json(edit_payload()) -> gleam@json:json().
to_json(Payload) ->
kitazith@internal@json_helper:object_omit_none(
[field(
<<"content"/utf8>>,
erlang:element(2, Payload),
fun gleam@json:string/1
),
field(
<<"embeds"/utf8>>,
erlang:element(3, Payload),
fun(Embeds) ->
gleam@json:array(Embeds, fun kitazith@embed:to_json/1)
end
),
field(
<<"attachments"/utf8>>,
erlang:element(4, Payload),
fun(Attachments) ->
gleam@json:array(
Attachments,
fun kitazith@attachment:to_json/1
)
end
),
field(
<<"components"/utf8>>,
erlang:element(5, Payload),
fun(Components) ->
gleam@json:array(
Components,
fun kitazith@component:to_json/1
)
end
),
field(
<<"allowed_mentions"/utf8>>,
erlang:element(6, Payload),
fun kitazith@allowed_mentions:to_json/1
),
field(
<<"flags"/utf8>>,
erlang:element(7, Payload),
fun(Flags) -> _pipe = Flags,
_pipe@1 = gleam@list:map(
_pipe,
fun edit_payload_flag_to_message_flag/1
),
_pipe@2 = kitazith@flag:to_int(_pipe@1),
gleam@json:int(_pipe@2) end
)]
).
-file("src/kitazith/webhook/edit.gleam", 275).
-spec to_string(edit_payload()) -> binary().
to_string(Payload) ->
_pipe = Payload,
_pipe@1 = to_json(_pipe),
gleam@json:to_string(_pipe@1).
-file("src/kitazith/webhook/edit.gleam", 281).
-spec to_string_tree(edit_payload()) -> gleam@string_tree:string_tree().
to_string_tree(Payload) ->
_pipe = Payload,
_pipe@1 = to_json(_pipe),
gleam_json_ffi:json_to_iodata(_pipe@1).