Reintroduce 'ROOTAPI' so domain and protocol can be configured

eg. setter for api root added as comment in examples/BASIC/BASIC.ino
This commit is contained in:
John
2024-07-21 19:38:50 +12:00
parent a9d9c60dfa
commit 7b9dac756b
3 changed files with 15 additions and 6 deletions

View File

@ -126,6 +126,9 @@ void setup() {
openMetrics.setAirGradient(&ag); openMetrics.setAirGradient(&ag);
localServer.setAirGraident(&ag); localServer.setAirGraident(&ag);
/** Example set custom API root URL */
// apiClient.setApiRoot("https://example.custom.api");
/** Init sensor */ /** Init sensor */
boardInit(); boardInit();

View File

@ -22,6 +22,7 @@ AgApiClient::~AgApiClient() {}
void AgApiClient::begin(void) { void AgApiClient::begin(void) {
getConfigFailed = false; getConfigFailed = false;
postToServerFailed = false; postToServerFailed = false;
logInfo("Init apiRoot: " + apiRoot);
logInfo("begin"); logInfo("begin");
} }
@ -44,9 +45,8 @@ bool AgApiClient::fetchServerConfiguration(void) {
return false; return false;
} }
String uri = String uri = apiRoot + "/sensors/airgradient:" +
"http://hw.airgradient.com/sensors/airgradient:" + ag->deviceId() + ag->deviceId() + "/one/config";
"/one/config";
/** Init http client */ /** Init http client */
#ifdef ESP8266 #ifdef ESP8266
@ -109,9 +109,8 @@ bool AgApiClient::postToServer(String data) {
return false; return false;
} }
String uri = String uri = apiRoot + "/sensors/airgradient:" +
"http://hw.airgradient.com/sensors/airgradient:" + ag->deviceId() + ag->deviceId() + "/measures";
"/measures";
logInfo("Post uri: " + uri); logInfo("Post uri: " + uri);
logInfo("Post data: " + data); logInfo("Post data: " + data);
@ -177,3 +176,7 @@ bool AgApiClient::sendPing(int rssi, int bootCount) {
root["boot"] = bootCount; root["boot"] = bootCount;
return postToServer(JSON.stringify(root)); return postToServer(JSON.stringify(root));
} }
String AgApiClient::getApiRoot() const { return apiRoot; }
void AgApiClient::setApiRoot(const String &apiRoot) { this->apiRoot = apiRoot; }

View File

@ -20,6 +20,7 @@ class AgApiClient : public PrintLog {
private: private:
Configuration &config; Configuration &config;
AirGradient *ag; AirGradient *ag;
String apiRoot = "http://hw.airgradient.com";
bool getConfigFailed; bool getConfigFailed;
bool postToServerFailed; bool postToServerFailed;
@ -37,6 +38,8 @@ public:
bool isNotAvailableOnDashboard(void); bool isNotAvailableOnDashboard(void);
void setAirGradient(AirGradient *ag); void setAirGradient(AirGradient *ag);
bool sendPing(int rssi, int bootCount); bool sendPing(int rssi, int bootCount);
String getApiRoot() const;
void setApiRoot(const String &apiRoot);
}; };
#endif /** _AG_API_CLIENT_H_ */ #endif /** _AG_API_CLIENT_H_ */