Added new api end point to test the WEBServer cookie API
This commit is contained in:
parent
2c2f1da56e
commit
fba428c977
@ -99,6 +99,7 @@ void setup()
|
|||||||
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/io/set/mode", &(ioSetModeApi), &sab, WEBServer<WEBClient>::GET);
|
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/io/set/mode", &(ioSetModeApi), &sab, WEBServer<WEBClient>::GET);
|
||||||
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/ota/update/upload", &(otaUpdateUploadApi), NULL, WEBServer<WEBClient>::POST);
|
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/ota/update/upload", &(otaUpdateUploadApi), NULL, WEBServer<WEBClient>::POST);
|
||||||
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/ota/update/device", &(otaUpdateRemoteApi), &sab, WEBServer<WEBClient>::GET);
|
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/ota/update/device", &(otaUpdateRemoteApi), &sab, WEBServer<WEBClient>::GET);
|
||||||
|
sab.getWebServerManager().getWEBServer().addApiRoutine("/sab/web/cookietest", &(cookieTestApi), &sab, WEBServer<WEBClient>::GET);
|
||||||
|
|
||||||
sab.getIOManager().setISROnIOChange(&(ioISR), GPIO_3_RX);
|
sab.getIOManager().setISROnIOChange(&(ioISR), GPIO_3_RX);
|
||||||
|
|
||||||
|
@ -661,3 +661,45 @@ boolean otaUpdateRemoteApi(WEBServer<WEBClient> *ws, WEBServer<WEBClient>::HttpR
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean cookieTestApi(WEBServer<WEBClient> *ws, WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
|
||||||
|
{
|
||||||
|
(void)pData;
|
||||||
|
|
||||||
|
//We first check what kind of action we want to do:
|
||||||
|
if(HRD.getParams("set") != NULL)
|
||||||
|
{
|
||||||
|
uint8_t cookieCount(HRD.getParams.count() - 1);
|
||||||
|
Serial.printf("Cookies to be set/unset : %u\n", cookieCount);
|
||||||
|
for(uint8_t i(0); i < HRD.getParams.count(); i++)
|
||||||
|
{
|
||||||
|
if(strcmp(HRD.getParams.getParameter(i), "set") != 0)
|
||||||
|
{
|
||||||
|
if(!strlen(HRD.getParams.getAt(i)->getString())) //We ask to remove the cookie
|
||||||
|
{
|
||||||
|
Serial.printf("Unsetting cookie %s->%s\n", HRD.getParams.getParameter(i), HRD.getParams.getAt(i)->getString());
|
||||||
|
ws->addCookies(HRD.getParams.getParameter(i), HRD.getParams.getAt(i)->getString(), 0);
|
||||||
|
}
|
||||||
|
else //We add the cookie
|
||||||
|
{
|
||||||
|
Serial.printf("Setting cookie %s->%s\n", HRD.getParams.getParameter(i), HRD.getParams.getAt(i)->getString());
|
||||||
|
ws->addCookies(HRD.getParams.getParameter(i), HRD.getParams.getAt(i)->getString(), 3600);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ws->sendHTTPResponse(wc, HttpConstants::httpMIMETypeToString(HttpConstants::TEXT_PLAIN)); //We dont know the content length
|
||||||
|
wc->printf("Setting/Unsetting %u cookies : \n", cookieCount);
|
||||||
|
}
|
||||||
|
else //We print the setted cookies
|
||||||
|
{
|
||||||
|
ws->sendHTTPResponse(wc, HttpConstants::httpMIMETypeToString(HttpConstants::TEXT_PLAIN)); //We dont know the content length
|
||||||
|
wc->printf("Cookies to display : %u\n", HRD.cookies.count());
|
||||||
|
for(uint8_t i(0); i < HRD.cookies.count(); i++)
|
||||||
|
{
|
||||||
|
wc->printf("cookie %u : %s->%s\n", i, HRD.cookies.getParameter(i), HRD.cookies.getAt(i)->value.getString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@ -32,5 +32,6 @@ boolean ioGetModeApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestDat
|
|||||||
boolean ioSetModeApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
boolean ioSetModeApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||||
boolean otaUpdateUploadApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
boolean otaUpdateUploadApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||||
boolean otaUpdateRemoteApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
boolean otaUpdateRemoteApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||||
|
boolean cookieTestApi(WEBServer<WEBClient>*, WEBServer<WEBClient>::HttpRequestData&, WiFiClient*, void*);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user