36 lines
872 B
C
36 lines
872 B
C
|
#ifndef DOLIBARR_CLIENT_H
|
||
|
#define DOLIBARR_CLIENT_H
|
||
|
|
||
|
#include <WiFi.h>
|
||
|
#include <HTTPClient.h>
|
||
|
#include <vector>
|
||
|
#include "DolibarrModels.h"
|
||
|
|
||
|
struct WifiConfig {
|
||
|
const char* ssid;
|
||
|
const char* password;
|
||
|
};
|
||
|
|
||
|
struct DolibarrConfig {
|
||
|
const char* url;
|
||
|
const char* api_key;
|
||
|
};
|
||
|
|
||
|
class DolibarrClient {
|
||
|
public:
|
||
|
DolibarrClient(DolibarrConfig dolibarr_config);
|
||
|
~DolibarrClient() = default;
|
||
|
int login() const;
|
||
|
std::vector<models::Warehouse> *list_warehouse() const;
|
||
|
std::vector<models::Product> *list_products() const;
|
||
|
models::Product *get_product_by_id(const char* id_product) const;
|
||
|
int create_movement(models::CreateProductStock &stock) const;
|
||
|
private:
|
||
|
HTTPClient* httpClient{};
|
||
|
struct DolibarrConfig dolibarr;
|
||
|
int initialize_http_client();
|
||
|
HTTPClient *build_url(const String& url) const;
|
||
|
};
|
||
|
|
||
|
#endif //DOLIBARR_CLIENT_H
|