2023-05-14 23:16:16 +02:00

99 lines
2.1 KiB
C++

#ifndef API_H
#define API_H
#include <Arduino_JSON.h>
#include <WiFiEsp.h>
class API {
public:
/**
* @brief Construit un nouvelle objet API
*
* @param[in] user nom de l'utilisateur de l'API
* @param[in] password mot de passe de l'utilisateur
* @param[in] host address de l'api
* @param[in] https l'address de l'api est en https *(defaut `true`)*
*/
API(String user, String password, String host, bool https = true);
/**
* @brief Initialise la connection Wifi de l'esp
*
* @param[in] wifiId nom du wifi
* @param[in] wifiPass mot de passe du wifi
* @param[in] espSerial port serie de l'esp (hard ou soft)
* @return true la connexion a bien fonctionner
* @return false erreur a la connexion
*/
bool wifiBegin(String wifiID, String wifiPass, Stream* espSerial);
/**
* @brief envoie la valeur d'un capteur de poubelle à l'api
*
* @param[in] val valeur du capteur
* @param[in] poubelleID ID de la poubelle
* @param[in] unit uniter de mesure du capteur *(ex: g, cm, degree,...)
* @param[in] full poubelle est considéré comme pleine
* @return true la valeur s'est bien envoyer
* @return false il y a une erreur durran l'envoie
*/
bool sendValue(String val, String poubelleID, String unit, bool full);
/**
* @brief connect l'utilisateur a l'api et met a jour le token
*
* @return true l'utilisateur est bien connecter
* @return false erreur lors de la connexion de l'utilisateur
*/
bool connect();
private:
/**
* @brief ID de l'utilisateur
*
*/
String user;
/**
* @brief mdp de l'utilisateur
*
*/
String password;
/**
* @brief adresse du serveur API
*
*/
String serveurHost;
/**
* @brief true = serveur en https (443)
*
*/
bool https;
/**
* @brief client http
*
*/
WiFiEspClient* client;
/**
* @brief token de connexion du client (vide = deconnecter)
*
*/
String token;
/**
* @brief wifi démmaré
*
*/
bool init;
};
#endif