From d06b1e49d91a59ef9506e11a19cabd7d422236a1 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Sun, 20 Oct 2019 18:05:06 +0200 Subject: [PATCH] Added new api endpoint to reload and apply screen config from sd card --- src/app/webApi.cpp | 24 +++++++++++++++++++----- src/app/webApi.h | 1 + 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/app/webApi.cpp b/src/app/webApi.cpp index 3fa8899..cc81c0d 100644 --- a/src/app/webApi.cpp +++ b/src/app/webApi.cpp @@ -4,7 +4,7 @@ boolean apiTesterApi(WEBServer::HttpRequestData &HRD, WiFiClient* wc, void* pData) { - wc->print(F("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"API\" : \"available\" }")); + wc->printf_P(PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"API\" : \"available\" }")); return true; } @@ -16,17 +16,17 @@ boolean viewByUIDApi(WEBServer::HttpRequestData &HRD, WiFiClient *wc, if(pSE == NULL) { - sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"expected UID parameter\" }"); + sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"expected UID parameter\" }")); } else if(strlen(pSE->getString()) > 0) { if(p->getScreenManager().displayView(atoi(pSE->getString()))) - sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"ViewUID\" : \"%d\" }", p->getScreenManager().getCurrentViewUID()); + sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"ViewUID\" : \"%d\" }"), p->getScreenManager().getCurrentViewUID()); else - sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"%s\" }", p->getScreenManager().getErrorMessage()); + sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"%s\" }"), p->getScreenManager().getErrorMessage()); } else - sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"UID parameter empty\" }"); + sprintf_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"UID parameter empty\" }")); wc->print(buffer); return true; } @@ -43,6 +43,20 @@ boolean nextViewApi(WEBServer::HttpRequestData &HRD, WiFiClient *wc, return true; } +boolean reloadViewApi(WEBServer::HttpRequestData &HRD, WiFiClient *wc, void *pData) +{ + SAB *p = (SAB *)pData; + char buffer[200]; + + if(p->getScreenManager().init()) + strcpy_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"message\" : \"config reloaded\" }")); + else + strcpy_P(buffer,PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"failed\", \"message\" : \"unable to reload config\" }")); + + wc->print(buffer); + return true; +} + boolean rtcGetTimeApi(WEBServer::HttpRequestData &HRD, WiFiClient *wc, void *pData) { SAB *p = (SAB *)pData; diff --git a/src/app/webApi.h b/src/app/webApi.h index 34aeaa9..bfd2aa6 100644 --- a/src/app/webApi.h +++ b/src/app/webApi.h @@ -6,6 +6,7 @@ boolean apiTesterApi(WEBServer::HttpRequestData&, WiFiClient*, void*); boolean nextViewApi(WEBServer::HttpRequestData&, WiFiClient*, void*); +boolean reloadViewApi(WEBServer::HttpRequestData&, WiFiClient*, void*); boolean viewByUIDApi(WEBServer::HttpRequestData&, WiFiClient*, void*); boolean rtcGetTimeApi(WEBServer::HttpRequestData&, WiFiClient*, void*); boolean rtcSetTimeApi(WEBServer::HttpRequestData&, WiFiClient*, void*);