@@ -49,7 +49,7 @@ void APB::WebServer::setup() {
4949 #ifdef CONFIGURATION_FOR_PROTOTYPE
5050 server.on (" /api/wifi" , HTTP_DELETE, [this ](AsyncWebServerRequest *request){
5151 new Task (1'000 , TASK_ONCE, [](){WiFi.disconnect ();}, &scheduler, true );
52- JsonResponse response (request, 100 );
52+ JsonResponse response (request);
5353 response.document [" status" ] = " Dropping WiFi" ;
5454 });
5555 #endif
@@ -71,13 +71,13 @@ void APB::WebServer::setup() {
7171 new Task (1000 , TASK_FOREVER, [this ](){
7272 eventsDocument.clear ();
7373 if (Ambient::Instance.reading ().has_value ()) {
74- populateAmbientStatus (eventsDocument. createNestedObject ( " ambient" ));
74+ populateAmbientStatus (eventsDocument[ " ambient" ]. to <JsonObject>( ));
7575 } else {
7676 eventsDocument[" ambient" ] = static_cast <char *>(0 );
7777 }
7878
79- populatePowerStatus (eventsDocument. createNestedObject ( " power" ));
80- populateHeatersStatus (eventsDocument. createNestedArray ( " heaters" ));
79+ populatePowerStatus (eventsDocument[ " power" ]. to <JsonObject>( ));
80+ populateHeatersStatus (eventsDocument[ " heaters" ]. to <JsonArray>( ));
8181 eventsDocument[" app" ][" uptime" ] = esp_timer_get_time () / 1000'000.0 ;
8282 serializeJson (eventsDocument, eventsString.data (), eventsString.size ());
8383 this ->events .send (eventsString.data (), " status" , millis (), 5000 );
@@ -86,13 +86,13 @@ void APB::WebServer::setup() {
8686
8787
8888void APB::WebServer::onRestart (AsyncWebServerRequest *request) {
89- JsonResponse response (request, 100 );
89+ JsonResponse response (request);
9090 response.document [" status" ] = " restarting" ;
9191 new Task (1000 , TASK_ONCE, [](){ esp_restart (); }, &scheduler, true );
9292}
9393
9494void APB::WebServer::onGetStatus (AsyncWebServerRequest *request) {
95- JsonResponse response (request, 500 );
95+ JsonResponse response (request);
9696 response.document [" status" ] = " ok" ;
9797 response.document [" uptime" ] = esp_timer_get_time () / 1000'000.0 ;
9898
@@ -102,7 +102,7 @@ void APB::WebServer::onGetStatus(AsyncWebServerRequest *request) {
102102}
103103
104104void APB::WebServer::onGetConfig (AsyncWebServerRequest *request) {
105- JsonResponse response (request, 600 );
105+ JsonResponse response (request);
106106 response.document [" accessPoint" ][" essid" ] = Settings::Instance.apConfiguration ().essid ;
107107 response.document [" accessPoint" ][" psk" ] = Settings::Instance.apConfiguration ().psk ;
108108 for (uint8_t i=0 ; i<APB_MAX_STATIONS; i++) {
@@ -124,7 +124,7 @@ void APB::WebServer::onGetHistory(AsyncWebServerRequest *request) {
124124}
125125
126126void APB::WebServer::onNotFound (AsyncWebServerRequest *request) {
127- JsonResponse response (request, 500 , 404 );
127+ JsonResponse response (request, 404 );
128128 response.document [" error" ] = " NotFound" ;
129129 response.document [" url" ] = request->url ();
130130}
@@ -135,7 +135,7 @@ void APB::WebServer::onConfigAccessPoint(AsyncWebServerRequest *request, JsonVar
135135 Settings::Instance.setAPConfiguration (" " , " " );
136136 }
137137 if (request->method () == HTTP_POST) {
138- if (Validation{request, json}.required ({" essid" , " psk" }).notEmpty (" essid" ).invalid ()) return ;
138+ if (Validation{request, json}.required < const char *> ({" essid" , " psk" }).notEmpty (" essid" ).invalid ()) return ;
139139
140140 String essid = json[" essid" ];
141141 String psk = json[" psk" ];
@@ -151,10 +151,10 @@ void APB::WebServer::onConfigAccessPoint(AsyncWebServerRequest *request, JsonVar
151151
152152void APB::WebServer::onConfigStation (AsyncWebServerRequest *request, JsonVariant &json) {
153153 Validation validation{request, json};
154- validation.required (" index" ).range (" index" , {0 }, {APB_MAX_STATIONS-1 });
154+ validation.required < int > (" index" ).range (" index" , {0 }, {APB_MAX_STATIONS-1 });
155155
156156 if (request->method () == HTTP_POST) {
157- validation.required ({" essid" , " psk" }).notEmpty (" essid" );
157+ validation.required < const char *> ({" essid" , " psk" }).notEmpty (" essid" );
158158 }
159159 if (validation.invalid ()) return ;
160160 int stationIndex = json[" index" ];
@@ -176,7 +176,7 @@ void APB::WebServer::onPostWriteConfig(AsyncWebServerRequest *request) {
176176}
177177
178178void APB::WebServer::onGetWiFiStatus (AsyncWebServerRequest *request) {
179- JsonResponse response (request, 100 );
179+ JsonResponse response (request);
180180 response.document [" wifi" ][" status" ] = WiFiManager::Instance.statusAsString ();
181181 response.document [" wifi" ][" essid" ] = WiFiManager::Instance.essid ();
182182 response.document [" wifi" ][" ip" ] = WiFiManager::Instance.ipAddress ();
@@ -193,14 +193,14 @@ void APB::WebServer::onGetAmbient(AsyncWebServerRequest *request) {
193193 JsonResponse::error (500 , " Ambient reading not available" , request);
194194 return ;
195195 }
196- JsonResponse response (request, 100 );
196+ JsonResponse response (request);
197197 populateAmbientStatus (response.document .to <JsonObject>());
198198}
199199
200200
201201
202202void APB::WebServer::onGetHeaters (AsyncWebServerRequest *request) {
203- JsonResponse response (request, Heaters::Instance. size () * 100 );
203+ JsonResponse response (request);
204204 populateHeatersStatus (response.document .to <JsonArray>());
205205}
206206
@@ -237,7 +237,7 @@ void APB::WebServer::onGetPower(AsyncWebServerRequest *request) {
237237 JsonResponse::error (500 , " Power reading not available" , request);
238238 return ;
239239 }
240- JsonResponse response (request, 200 );
240+ JsonResponse response (request);
241241 populatePowerStatus (response.document .to <JsonObject>());
242242}
243243
@@ -308,7 +308,7 @@ void APB::WebServer::onGetMetrics(AsyncWebServerRequest *request) {
308308
309309
310310void APB::WebServer::onGetESPInfo (AsyncWebServerRequest *request) {
311- JsonResponse response (request, 500 );
311+ JsonResponse response (request);
312312 response.document [" mem" ][" freeHeap" ] = ESP.getFreeHeap ();
313313 response.document [" mem" ][" freePsRam" ] = ESP.getFreePsram ();
314314 response.document [" mem" ][" heapSize" ] = ESP.getHeapSize ();
@@ -328,7 +328,7 @@ void APB::WebServer::onGetESPInfo(AsyncWebServerRequest *request) {
328328
329329void APB::WebServer::onPostSetHeater (AsyncWebServerRequest *request, JsonVariant &json) {
330330 Validation validation{request, json};
331- if (validation.required ({ " index" , " mode" } )
331+ if (validation.required < int >( " index" ). required < const char *>( " mode" )
332332 .range (" index" , {0 }, {Heaters::Instance.size ()-1 })
333333 .range (" duty" , {0 }, {1 })
334334 .choice (" mode" , Heater::validModes ()).invalid ()) return ;
@@ -340,7 +340,7 @@ void APB::WebServer::onPostSetHeater(AsyncWebServerRequest *request, JsonVariant
340340 return ;
341341 }
342342
343- if (validation.range (" duty" , {0 }, {1 }).required (" duty" ).invalid ()) return ;
343+ if (validation.range (" duty" , {0 }, {1 }).required < float > (" duty" ).invalid ()) return ;
344344 float duty = json[" duty" ];
345345 static const char *temperatureErrorMessage = " Unable to set target temperature. Heater probably doesn't have a temperature sensor." ;
346346 static const char *dewpointTemperatureErrorMessage = " Unable to set target temperature. Either the heater doesn't have a temperature sensor, or you're missing an ambient sensor." ;
@@ -349,15 +349,15 @@ void APB::WebServer::onPostSetHeater(AsyncWebServerRequest *request, JsonVariant
349349 heater.setDuty (json[" duty" ]);
350350 }
351351 if (mode == Heater::Mode::dewpoint) {
352- if (validation.range (" dewpoint_offset" , {-30 }, {30 }).required (" dewpoint_offset" ).invalid ()) return ;
352+ if (validation.range (" dewpoint_offset" , {-30 }, {30 }).required < float > (" dewpoint_offset" ).invalid ()) return ;
353353 float dewpointOffset = json[" dewpoint_offset" ];
354354 if (!heater.setDewpoint (dewpointOffset, duty)) {
355355 JsonResponse::error (500 , dewpointTemperatureErrorMessage, request);
356356 return ;
357357 }
358358 }
359359 if (mode == Heater::Mode::target_temperature) {
360- if (validation.range (" target_temperature" , {-50 }, {50 }).required (" target_temperature" ).invalid ()) return ;
360+ if (validation.range (" target_temperature" , {-50 }, {50 }).required < float > (" target_temperature" ).invalid ()) return ;
361361 float targetTemperature = json[" target_temperature" ];
362362 if (!heater.setTemperature (targetTemperature, duty)) {
363363 JsonResponse::error (500 , temperatureErrorMessage, request);
@@ -369,11 +369,11 @@ void APB::WebServer::onPostSetHeater(AsyncWebServerRequest *request, JsonVariant
369369
370370void APB::WebServer::onConfigStatusLedDuty (AsyncWebServerRequest *request, JsonVariant &json) {
371371 Validation validation{request, json};
372- if (validation.required ({ " duty" } )
372+ if (validation.required < float >( " duty" )
373373 .range (" duty" , {0 }, {1 })
374374 .invalid ()) return ;
375375 StatusLed::Instance.setDuty (json[" duty" ]);
376- JsonResponse response (request, 100 );
376+ JsonResponse response (request);
377377 response.document [" duty" ] = StatusLed::Instance.duty ();
378378}
379379
0 commit comments