From 7b9dac756bd8fdf362926fd87fe3cffff9b12a54 Mon Sep 17 00:00:00 2001 From: John Date: Sun, 21 Jul 2024 19:38:50 +1200 Subject: [PATCH] Reintroduce 'ROOTAPI' so domain and protocol can be configured eg. setter for api root added as comment in examples/BASIC/BASIC.ino --- examples/BASIC/BASIC.ino | 3 +++ src/AgApiClient.cpp | 15 +++++++++------ src/AgApiClient.h | 3 +++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/examples/BASIC/BASIC.ino b/examples/BASIC/BASIC.ino index 8928c68..7a6e200 100644 --- a/examples/BASIC/BASIC.ino +++ b/examples/BASIC/BASIC.ino @@ -126,6 +126,9 @@ void setup() { openMetrics.setAirGradient(&ag); localServer.setAirGraident(&ag); + /** Example set custom API root URL */ + // apiClient.setApiRoot("https://example.custom.api"); + /** Init sensor */ boardInit(); diff --git a/src/AgApiClient.cpp b/src/AgApiClient.cpp index 1f7c83b..bff6789 100644 --- a/src/AgApiClient.cpp +++ b/src/AgApiClient.cpp @@ -22,6 +22,7 @@ AgApiClient::~AgApiClient() {} void AgApiClient::begin(void) { getConfigFailed = false; postToServerFailed = false; + logInfo("Init apiRoot: " + apiRoot); logInfo("begin"); } @@ -44,9 +45,8 @@ bool AgApiClient::fetchServerConfiguration(void) { return false; } - String uri = - "http://hw.airgradient.com/sensors/airgradient:" + ag->deviceId() + - "/one/config"; + String uri = apiRoot + "/sensors/airgradient:" + + ag->deviceId() + "/one/config"; /** Init http client */ #ifdef ESP8266 @@ -109,9 +109,8 @@ bool AgApiClient::postToServer(String data) { return false; } - String uri = - "http://hw.airgradient.com/sensors/airgradient:" + ag->deviceId() + - "/measures"; + String uri = apiRoot + "/sensors/airgradient:" + + ag->deviceId() + "/measures"; logInfo("Post uri: " + uri); logInfo("Post data: " + data); @@ -177,3 +176,7 @@ bool AgApiClient::sendPing(int rssi, int bootCount) { root["boot"] = bootCount; return postToServer(JSON.stringify(root)); } + +String AgApiClient::getApiRoot() const { return apiRoot; } + +void AgApiClient::setApiRoot(const String &apiRoot) { this->apiRoot = apiRoot; } diff --git a/src/AgApiClient.h b/src/AgApiClient.h index 4b37bf3..7e6037d 100644 --- a/src/AgApiClient.h +++ b/src/AgApiClient.h @@ -20,6 +20,7 @@ class AgApiClient : public PrintLog { private: Configuration &config; AirGradient *ag; + String apiRoot = "http://hw.airgradient.com"; bool getConfigFailed; bool postToServerFailed; @@ -37,6 +38,8 @@ public: bool isNotAvailableOnDashboard(void); void setAirGradient(AirGradient *ag); bool sendPing(int rssi, int bootCount); + String getApiRoot() const; + void setApiRoot(const String &apiRoot); }; #endif /** _AG_API_CLIENT_H_ */