Merge branch 'master' into feat/encoder

This commit is contained in:
2023-09-04 09:37:46 +02:00
4 changed files with 121 additions and 0 deletions

View File

@ -0,0 +1,55 @@
#ifndef DISCORD_API_H
#define DISCORD_API_H
#include <Arduino.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <WiFiClientSecureBearSSL.h>
#include <ESP8266WiFi.h>
class DiscordAPI{
public:
/**
* @brief Construct a new Discord API object
* @param hookUrl url of the discord webhook
*/
DiscordAPI(String hookUrl);
/**
* @brief send a message to the discord webhook
* @param trame trame a envoyer
* @return true la trame est bien envoyée
* @return false la trame n'est pas envoyée
*/
bool sendMessage(String trame);
/**
* @brief envoie un embed discord avec les horaires d'ouverture et de fermeture du lab
*
* @param hStart heure d'ouverture
* @param hEnd heure de fermeture
* @return true la trame est bien envoyée
* @return false la trame n'est pas envoyée
*/
bool sendHeure(String hStart, String hEnd);
private:
/**
* @brief webhook URL
*/
String hookUrl;
/**
* @brief http client
*/
HTTPClient* httpClient;
/**
* @brief wifi client (for https)
*/
BearSSL::WiFiClientSecure* wifiClient;
};
#endif //DISCORD_API_H

View File

@ -0,0 +1,38 @@
#include "../include/DiscordAPI.h"
DiscordAPI::DiscordAPI(String hookUrl){
this->hookUrl = hookUrl;
this->httpClient = new HTTPClient();
this->wifiClient = new BearSSL::WiFiClientSecure;
this->wifiClient->setInsecure();
randomSeed(analogRead(A0));
}
bool DiscordAPI::sendMessage(String trame){
bool sortie = true;
if(WiFi.status() != WL_CONNECTED){
return false;
}
this->httpClient->begin(*this->wifiClient, this->hookUrl);
this->httpClient->addHeader("Content-Type", "application/json");
int resp = this->httpClient->POST(trame);
if(resp != 204){
sortie = false;
Serial.print("sending message error code : ");
Serial.println(resp);
}
this->httpClient->end();
return sortie;
}
bool DiscordAPI::sendHeure(String hStart, String hEnd){
int color = random(16777215);
String trame = "{\"embeds\": [{\"title\": \"Le Lab est ouvert !\",\"description\": \"Le Lab est ouvert de **"+ hStart +"** à **"+ hEnd +"**\",\"color\": \"" + color + "\"}]}";
return this->sendMessage(trame);
}