2016-07-10 01:18:13 +01:00
|
|
|
#include "http/HTTPHelper.hpp"
|
|
|
|
|
|
|
|
#include <cstdio>
|
2016-07-21 14:07:05 +01:00
|
|
|
#include <thread>
|
|
|
|
#include <chrono>
|
2016-07-10 01:18:13 +01:00
|
|
|
|
|
|
|
#include "APIHelper.hpp"
|
|
|
|
|
2016-07-21 14:07:05 +01:00
|
|
|
using namespace std::chrono_literals;
|
|
|
|
|
2016-07-10 19:17:35 +01:00
|
|
|
APIHelper::APIHelper() : BASE_URL("https://discordapp.com/api"), CHANNELS_URL(BASE_URL + "/channels"),
|
2016-07-20 22:57:47 +01:00
|
|
|
JSON_CTYPE("application/json") {
|
2016-07-10 01:18:13 +01:00
|
|
|
http = new HTTPHelper();
|
|
|
|
}
|
|
|
|
|
|
|
|
void APIHelper::send_message(std::string channel_id, std::string message) {
|
2016-07-20 22:57:47 +01:00
|
|
|
const std::string url = CHANNELS_URL + "/" + channel_id + "/messages";
|
2016-07-10 01:18:13 +01:00
|
|
|
json data = {
|
|
|
|
{ "content", message }
|
|
|
|
};
|
|
|
|
|
2016-07-21 14:07:05 +01:00
|
|
|
std::string response;
|
|
|
|
long response_code = -1;
|
|
|
|
response = http->post_request(url, JSON_CTYPE, data.dump(), &response_code);
|
|
|
|
|
|
|
|
int retries = 0;
|
|
|
|
while (response_code != 200 && retries < 2) {
|
|
|
|
std::this_thread::sleep_for(100ms);
|
|
|
|
// try 3 times. usually enough to prevent 502 bad gateway issues
|
|
|
|
response = http->post_request(url, JSON_CTYPE, data.dump(), &response_code);
|
|
|
|
retries++;
|
|
|
|
}
|
2016-07-10 01:18:13 +01:00
|
|
|
}
|