-module(kitazith@webhook@execute). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/kitazith/webhook/execute.gleam"). -export([new/0, with_content/2, with_username/2, with_avatar_url/2, with_tts/2, with_embeds/2, with_allowed_mentions/2, with_components/2, with_attachments/2, with_flags/2, with_thread_name/2, with_applied_tags/2, with_poll/2, to_json/1, to_string/1, to_string_tree/1, validate/1, validate_with_query/2]). -export_type([execute_payload/0, execute_payload_flag/0]). -type execute_payload() :: {execute_payload, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(boolean()), gleam@option:option(list(kitazith@embed:embed())), gleam@option:option(kitazith@allowed_mentions:allowed_mentions()), gleam@option:option(list(kitazith@component:component())), gleam@option:option(list(kitazith@attachment:attachment())), gleam@option:option(list(execute_payload_flag())), gleam@option:option(binary()), gleam@option:option(list(kitazith@snowflake:snowflake())), gleam@option:option(kitazith@poll:poll())}. -type execute_payload_flag() :: suppress_embeds | suppress_notifications | is_components_v2. -file("src/kitazith/webhook/execute.gleam", 62). -spec new() -> execute_payload(). new() -> {execute_payload, none, none, none, none, none, none, none, none, none, none, none, none}. -file("src/kitazith/webhook/execute.gleam", 79). -spec with_content(execute_payload(), binary()) -> execute_payload(). with_content(Payload, Content) -> {execute_payload, {some, Content}, erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 83). -spec with_username(execute_payload(), binary()) -> execute_payload(). with_username(Payload, Username) -> {execute_payload, erlang:element(2, Payload), {some, Username}, erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 90). -spec with_avatar_url(execute_payload(), binary()) -> execute_payload(). with_avatar_url(Payload, Avatar_url) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), {some, Avatar_url}, erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 97). -spec with_tts(execute_payload(), boolean()) -> execute_payload(). with_tts(Payload, Tts) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), {some, Tts}, erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 101). -spec with_embeds(execute_payload(), list(kitazith@embed:embed())) -> execute_payload(). with_embeds(Payload, Embeds) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), {some, Embeds}, erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 108). -spec with_allowed_mentions( execute_payload(), kitazith@allowed_mentions:allowed_mentions() ) -> execute_payload(). with_allowed_mentions(Payload, Mentions) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), {some, Mentions}, erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 115). -spec with_components(execute_payload(), list(kitazith@component:component())) -> execute_payload(). with_components(Payload, Components) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), {some, Components}, erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 122). -spec with_attachments( execute_payload(), list(kitazith@attachment:attachment()) ) -> execute_payload(). with_attachments(Payload, Attachments) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), {some, Attachments}, erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 129). -spec with_flags(execute_payload(), list(execute_payload_flag())) -> execute_payload(). with_flags(Payload, Flags) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), {some, Flags}, erlang:element(11, Payload), erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 136). -spec with_thread_name(execute_payload(), binary()) -> execute_payload(). with_thread_name(Payload, Thread_name) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), {some, Thread_name}, erlang:element(12, Payload), erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 143). -spec with_applied_tags(execute_payload(), list(kitazith@snowflake:snowflake())) -> execute_payload(). with_applied_tags(Payload, Applied_tags) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), {some, Applied_tags}, erlang:element(13, Payload)}. -file("src/kitazith/webhook/execute.gleam", 150). -spec with_poll(execute_payload(), kitazith@poll:poll()) -> execute_payload(). with_poll(Payload, Poll) -> {execute_payload, erlang:element(2, Payload), erlang:element(3, Payload), erlang:element(4, Payload), erlang:element(5, Payload), erlang:element(6, Payload), erlang:element(7, Payload), erlang:element(8, Payload), erlang:element(9, Payload), erlang:element(10, Payload), erlang:element(11, Payload), erlang:element(12, Payload), {some, Poll}}. -file("src/kitazith/webhook/execute.gleam", 321). -spec execute_payload_flag_to_message_flag(execute_payload_flag()) -> kitazith@flag:message_flag(). execute_payload_flag_to_message_flag(Execute_payload_flag) -> case Execute_payload_flag of suppress_embeds -> suppress_embeds; suppress_notifications -> suppress_notifications; is_components_v2 -> is_components_v2 end. -file("src/kitazith/webhook/execute.gleam", 275). -spec to_json(execute_payload()) -> gleam@json:json(). to_json(Payload) -> kitazith@internal@json_helper:object_omit_none( [kitazith@internal@json_helper:optional( <<"content"/utf8>>, erlang:element(2, Payload), fun gleam@json:string/1 ), kitazith@internal@json_helper:optional( <<"username"/utf8>>, erlang:element(3, Payload), fun gleam@json:string/1 ), kitazith@internal@json_helper:optional( <<"avatar_url"/utf8>>, erlang:element(4, Payload), fun gleam@json:string/1 ), kitazith@internal@json_helper:optional( <<"tts"/utf8>>, erlang:element(5, Payload), fun gleam@json:bool/1 ), kitazith@internal@json_helper:optional( <<"embeds"/utf8>>, erlang:element(6, Payload), fun(Embeds) -> gleam@json:array(Embeds, fun kitazith@embed:to_json/1) end ), kitazith@internal@json_helper:optional( <<"allowed_mentions"/utf8>>, erlang:element(7, Payload), fun kitazith@allowed_mentions:to_json/1 ), kitazith@internal@json_helper:optional( <<"components"/utf8>>, erlang:element(8, Payload), fun(Components) -> gleam@json:array( Components, fun kitazith@component:to_json/1 ) end ), kitazith@internal@json_helper:optional( <<"attachments"/utf8>>, erlang:element(9, Payload), fun(Attachments) -> gleam@json:array( Attachments, fun kitazith@attachment:to_json/1 ) end ), kitazith@internal@json_helper:optional( <<"flags"/utf8>>, erlang:element(10, Payload), fun(Flags) -> _pipe = Flags, _pipe@1 = gleam@list:map( _pipe, fun execute_payload_flag_to_message_flag/1 ), _pipe@2 = kitazith@flag:to_int(_pipe@1), gleam@json:int(_pipe@2) end ), kitazith@internal@json_helper:optional( <<"thread_name"/utf8>>, erlang:element(11, Payload), fun gleam@json:string/1 ), kitazith@internal@json_helper:optional( <<"applied_tags"/utf8>>, erlang:element(12, Payload), fun(Tags) -> gleam@json:array(Tags, fun kitazith@snowflake:to_json/1) end ), kitazith@internal@json_helper:optional( <<"poll"/utf8>>, erlang:element(13, Payload), fun kitazith@poll:to_json/1 )] ). -file("src/kitazith/webhook/execute.gleam", 309). -spec to_string(execute_payload()) -> binary(). to_string(Payload) -> _pipe = Payload, _pipe@1 = to_json(_pipe), gleam@json:to_string(_pipe@1). -file("src/kitazith/webhook/execute.gleam", 315). -spec to_string_tree(execute_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). -file("src/kitazith/webhook/execute.gleam", 331). -spec validate_query( kitazith@webhook@execute_query:execute_query(), execute_payload() ) -> list(kitazith@validation:validation_error()). validate_query(Query, Payload) -> case {erlang:element(3, Query), erlang:element(11, Payload)} of {{some, _}, {some, _}} -> [{validation_error, <<"query.thread_id"/utf8>>, {mutually_exclusive_with, <<"thread_name"/utf8>>}}]; {_, _} -> [] end. -file("src/kitazith/webhook/execute.gleam", 347). -spec has_is_components_v2_flag( gleam@option:option(list(execute_payload_flag())) ) -> boolean(). has_is_components_v2_flag(Flags) -> case Flags of {some, Flags@1} -> gleam@list:contains(Flags@1, is_components_v2); none -> false end. -file("src/kitazith/webhook/execute.gleam", 354). -spec components_v2_conflict_errors(execute_payload()) -> list(kitazith@validation:validation_error()). components_v2_conflict_errors(Payload) -> lists:append([case erlang:element(2, Payload) of {some, _} -> [{validation_error, <<"content"/utf8>>, {mutually_exclusive_with, <<"flags[IsComponentsV2]"/utf8>>}}]; none -> [] end, case erlang:element(6, Payload) of {some, _} -> [{validation_error, <<"embeds"/utf8>>, {mutually_exclusive_with, <<"flags[IsComponentsV2]"/utf8>>}}]; none -> [] end, case erlang:element(13, Payload) of {some, _} -> [{validation_error, <<"poll"/utf8>>, {mutually_exclusive_with, <<"flags[IsComponentsV2]"/utf8>>}}]; none -> [] end]). -file("src/kitazith/webhook/execute.gleam", 154). -spec validate(execute_payload()) -> {ok, execute_payload()} | {error, list(kitazith@validation:validation_error())}. validate(Payload) -> Attachment_filenames = case erlang:element(9, Payload) of {some, Attachments} -> kitazith@internal@validation@attachment:attachment_filenames( Attachments ); none -> [] end, Components_require_v2 = case erlang:element(8, Payload) of {some, Components} -> kitazith@internal@validation@component:components_require_v2_flag( Components ); none -> false end, Has_components_v2_flag = has_is_components_v2_flag( erlang:element(10, Payload) ), Errors = lists:append([case erlang:element(2, Payload) of {some, Content} -> kitazith@internal@validation@common:validate_string_max_length( <<"content"/utf8>>, Content, 2000 ); none -> [] end, case erlang:element(3, Payload) of {some, Username} -> kitazith@internal@validation@common:validate_string_length( <<"username"/utf8>>, Username, 1, 80 ); none -> [] end, case erlang:element(11, Payload) of {some, Thread_name} -> kitazith@internal@validation@common:validate_string_length( <<"thread_name"/utf8>>, Thread_name, 1, 100 ); none -> [] end, case erlang:element(6, Payload) of {some, Embeds} -> kitazith@internal@validation@embed:validate_embeds( <<"embeds"/utf8>>, Embeds, {some, Attachment_filenames} ); none -> [] end, case erlang:element(7, Payload) of {some, Allowed_mentions} -> kitazith@internal@validation@allowed_mentions:validate_allowed_mentions( <<"allowed_mentions"/utf8>>, Allowed_mentions ); none -> [] end, case erlang:element(8, Payload) of {some, Components@1} -> kitazith@internal@validation@component:validate_components( <<"components"/utf8>>, Components@1, {some, Attachment_filenames} ); none -> [] end, case erlang:element(9, Payload) of {some, Attachments@1} -> kitazith@internal@validation@attachment:validate_attachments( <<"attachments"/utf8>>, Attachments@1 ); none -> [] end, case erlang:element(13, Payload) of {some, Poll} -> kitazith@internal@validation@poll:validate_poll( <<"poll"/utf8>>, Poll ); none -> [] end, case Components_require_v2 andalso not Has_components_v2_flag of true -> [{validation_error, <<"flags"/utf8>>, {requires_flag, <<"IsComponentsV2"/utf8>>}}]; false -> [] end, case 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/execute.gleam", 263). -spec validate_with_query( execute_payload(), kitazith@webhook@execute_query:execute_query() ) -> {ok, execute_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 ).