Created the add.cpp command

This commit is contained in:
Mathias Wagner 2023-11-04 12:23:07 +01:00
parent 64e7b6a397
commit 1a614ea8e8
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

32
src/commands/add.cpp Normal file
View File

@ -0,0 +1,32 @@
#include "add.h"
#include "api/util.h"
#include <mariadb/conncpp.hpp>
using namespace sql;
using json = nlohmann::json;
void add::execute(sql::Connection &con, dpp::cluster &bot, const dpp::slashcommand_t &event) {
ResultSet *res = util::getResultSet(con, "SELECT * FROM channels WHERE guildId = ? AND channelId = ?",
{event.command.guild_id.str(), event.command.channel_id.str()});
if (res->next()) {
util::sendError(event, "This channel is already registered.");
return;
}
dpp::webhook newWebhook = dpp::webhook();
newWebhook.name = "Sheepstar";
newWebhook.channel_id = event.command.channel_id;
bot.create_webhook(newWebhook, [&con, event](const dpp::confirmation_callback_t &res) {
if (res.is_error()) {
util::sendError(event, "An error occurred while creating the webhook.");
return;
}
std::string url = json::parse(res.http_info.body)["url"].get<std::string>();
util::executeQuery(con, "INSERT INTO channels (guildId, channelId, webhookToken, cachedName) VALUES (?, ?, ?, ?)",
{event.command.guild_id.str(), event.command.channel_id.str(), url, event.command.channel.name});
util::sendSuccess(event, "This channel has been registered.");
});
}