From 7ee916537c9896d9eb0167cd0b301a44a3e58ae8 Mon Sep 17 00:00:00 2001 From: Syping Date: Sat, 20 Jan 2024 09:44:55 +0100 Subject: [PATCH] use dpp::cluster::post_rest to send Webhook request --- src/message_queue.cpp | 4 ++-- src/submit_queue.cpp | 2 +- src/submit_queue.h | 2 +- src/webhook_push.cpp | 23 +++++------------------ src/webhook_push.h | 9 +-------- 5 files changed, 10 insertions(+), 30 deletions(-) diff --git a/src/message_queue.cpp b/src/message_queue.cpp index 0c46ebd..97ca8d9 100644 --- a/src/message_queue.cpp +++ b/src/message_queue.cpp @@ -21,7 +21,7 @@ #include "settings.h" using namespace std::chrono_literals; -inline bot::translated_message make_translated_message(const bot::message &message, const std::string &translated_message, const std::string &webhook) +inline bot::translated_message make_translated_message(const bot::message &message, const std::string &translated_message, const dpp::webhook &webhook) { bot::translated_message tr_message; tr_message.author = message.author; @@ -95,7 +95,7 @@ void bot::message_queue::run(bot::settings::settings *settings, bot::submit_queu std::cerr << "Exception thrown while translating: unknown" << std::endl; } - submit_queue->add(make_translated_message(message, tr_message, target->webhook)); + submit_queue->add(make_translated_message(message, tr_message, dpp::webhook(target->webhook))); } std::this_thread::yield(); diff --git a/src/submit_queue.cpp b/src/submit_queue.cpp index f910a6b..4416445 100644 --- a/src/submit_queue.cpp +++ b/src/submit_queue.cpp @@ -38,7 +38,7 @@ void bot::submit_queue::run(dpp::cluster *bot) m_queue.erase(m_queue.begin()); m_mutex.unlock(); - bot::webhook_push webhook_push(message.webhook, message, bot); + webhook_push::run(message.webhook, message, bot); std::this_thread::yield(); } diff --git a/src/submit_queue.h b/src/submit_queue.h index 22ca530..99fe823 100644 --- a/src/submit_queue.h +++ b/src/submit_queue.h @@ -28,7 +28,7 @@ namespace bot { std::string author; std::string avatar; std::string message; - std::string webhook; + dpp::webhook webhook; }; class submit_queue { diff --git a/src/webhook_push.cpp b/src/webhook_push.cpp index 863e6f5..11a80ed 100644 --- a/src/webhook_push.cpp +++ b/src/webhook_push.cpp @@ -18,8 +18,7 @@ #include "webhook_push.h" -bot::webhook_push::webhook_push(const std::string &webhook, const bot::translated_message &message, dpp::cluster *bot) : - m_message(message) +void bot::webhook_push::run(const dpp::webhook &webhook, const bot::translated_message &message, dpp::cluster *bot) { const dpp::json json_body = { {"content", message.message}, @@ -28,12 +27,10 @@ bot::webhook_push::webhook_push(const std::string &webhook, const bot::translate }; try { - dpp::http_request webhook_request(webhook, nullptr, dpp::m_post, json_body.dump(), "application/json"); - const dpp::http_request_completion_t result = webhook_request.run(bot); - if (result.status != 204) - std::cerr << "Webhook push returned unexpected code " << result.status << " with response: " << result.body << std::endl; - m_content = result.body; - m_status = result.status; + bot->post_rest(API_PATH "/webhooks", std::to_string(webhook.id), dpp::utility::url_encode(webhook.token), dpp::m_post, json_body.dump(), [bot](dpp::json &json, const dpp::http_request_completion_t &event) { + if (event.status != 204) + std::cerr << "Webhook push returned unexpected code " << event.status << " with response: " << event.body << std::endl; + }); } catch (const std::exception &exception) { std::cerr << "Exception thrown while Webhook push: " << exception.what() << std::endl; @@ -42,13 +39,3 @@ bot::webhook_push::webhook_push(const std::string &webhook, const bot::translate std::cerr << "Exception thrown while Webhook push: unknown" << std::endl; } } - -const std::string bot::webhook_push::get_content() const -{ - return m_content; -} - -uint16_t bot::webhook_push::get_status() const -{ - return m_status; -} diff --git a/src/webhook_push.h b/src/webhook_push.h index 588b53e..6293d50 100644 --- a/src/webhook_push.h +++ b/src/webhook_push.h @@ -25,14 +25,7 @@ namespace bot { class webhook_push { public: - explicit webhook_push(const std::string &webhook, const bot::translated_message &message, dpp::cluster *bot); - const std::string get_content() const; - uint16_t get_status() const; - - private: - std::string m_content; - uint16_t m_status; - bot::translated_message m_message; + static void run(const dpp::webhook &webhook, const bot::translated_message &message, dpp::cluster *bot); }; }