52 template<
typename value_type>
friend struct jsonifier::core;
53 friend class create_ephemeral_follow_up_message_data;
54 friend class create_follow_up_message_data;
55 friend class edit_follow_up_message_data;
56 friend class interactions;
57 friend class web_hooks;
62 execute_web_hook_data() =
default;
64 execute_web_hook_data(
const web_hook_data& dataNew);
75 execute_web_hook_data& addButton(
bool disabled, jsonifier::string_view customIdNew, jsonifier::string_view buttonLabel, button_style buttonStyle,
76 jsonifier::string_view emojiName =
"", snowflake emojiId = snowflake{}, jsonifier::string_view url =
"");
88 execute_web_hook_data& addSelectMenu(
bool disabled, jsonifier::string_view customIdNew,
const jsonifier::vector<select_option_data>& options,
89 jsonifier::string_view placeholder, int32_t maxValues, int32_t minValues, select_menu_type type,
90 const jsonifier::vector<channel_type>& channelTypes = jsonifier::vector<channel_type>{});
104 execute_web_hook_data& addModal(jsonifier::string_view topTitleNew, jsonifier::string_view topCustomIdNew, jsonifier::string_view titleNew,
105 jsonifier::string_view customIdNew,
bool required, int32_t minLength, int32_t maxLength, text_input_style inputStyle, jsonifier::string_view label =
"",
106 jsonifier::string_view placeholder =
"");
111 execute_web_hook_data& addFile(
const file& theFile);
116 execute_web_hook_data& addAllowedMentions(
const allowed_mentions_data dataPackage);
121 execute_web_hook_data& addComponentRow(
const action_row_data dataPackage);
126 execute_web_hook_data& addMessageEmbed(
const embed_data dataPackage);
131 execute_web_hook_data& addContent(jsonifier::string_view dataPackage);
136 execute_web_hook_data& setTTSStatus(
bool enabledTTs);
138 void generateExcludedKeys();
140 unordered_set<jsonifier::string> jsonifierExcludedKeys{};
143 jsonifier::vector<attachment_data> attachments{};
144 jsonifier::vector<action_row_data> components{};
145 allowed_mentions_data allowedMentions{};
146 jsonifier::vector<embed_data> embeds{};
147 jsonifier::vector<file> files{};
148 jsonifier::string webhookToken{};
149 jsonifier::string avatarUrl{};
150 jsonifier::string userName{};
151 jsonifier::string customId{};
152 snowflake webHookId{};
153 jsonifier::string content{};
154 jsonifier::string title{};
253 static void initialize(discord_core_internal::https_client*);
258 static co_routine<web_hook_data> createWebHookAsync(create_web_hook_data dataPackage);
263 static co_routine<jsonifier::vector<web_hook_data>> getChannelWebHooksAsync(get_channel_web_hooks_data dataPackage);
268 static co_routine<jsonifier::vector<web_hook_data>> getGuildWebHooksAsync(get_guild_web_hooks_data dataPackage);
273 static co_routine<web_hook_data> getWebHookAsync(get_web_hook_data dataPackage);
278 static co_routine<web_hook_data> getWebHookWithTokenAsync(get_web_hook_with_token_data dataPackage);
283 static co_routine<web_hook_data> modifyWebHookAsync(modify_web_hook_data dataPackage);
288 static co_routine<web_hook_data> modifyWebHookWithTokenAsync(modify_web_hook_with_token_data dataPackage);
293 static co_routine<void> deleteWebHookAsync(delete_web_hook_data dataPackage);
298 static co_routine<void> deleteWebHookWithTokenAsync(delete_web_hook_with_token_data dataPackage);
303 static co_routine<message_data> executeWebHookAsync(execute_web_hook_data dataPackage);
308 static co_routine<message_data> getWebHookMessageAsync(get_web_hook_message_data dataPackage);
313 static co_routine<message_data> editWebHookMessageAsync(edit_web_hook_data dataPackage);
318 static co_routine<void> deleteWebHookMessageAsync(delete_web_hook_message_data dataPackage);
321 static discord_core_internal::https_client* httpsClient;