- added delete function for the api

This commit is contained in:
2023-06-03 10:40:05 +02:00
parent 8796da97b5
commit b297a31b6b
2 changed files with 58 additions and 14 deletions
+56 -14
View File
@@ -83,18 +83,13 @@ void MenuRoute::init() {
this->mainMenu = new Menu; this->mainMenu = new Menu;
MenuRoutePoints* pointsMenu = new MenuRoutePoints(this->route); MenuRoutePoints* pointsMenu = new MenuRoutePoints(this->route);
Menu* importMenu = new Menu;
Menu* exportMenu = new Menu;
Menu* clearMenu = new Menu;
this->mainMenu->setLcd(this->lcd); this->mainMenu->setLcd(this->lcd);
pointsMenu->setLcd(this->lcd); pointsMenu->setLcd(this->lcd);
importMenu->setLcd(this->lcd);
exportMenu->setLcd(this->lcd);
clearMenu->setLcd(this->lcd);
MenuIntInput* importWrapper = new MenuIntInput(1, new MenuRouteWrapper(this, &MenuRoute::importRoute)); MenuIntInput* importWrapper = new MenuIntInput(1, new MenuRouteWrapper(this, &MenuRoute::importRoute));
MenuIntInput* exportWrapper = new MenuIntInput(1, new MenuRouteWrapper(this, &MenuRoute::exportRoute)); MenuIntInput* exportWrapper = new MenuIntInput(1, new MenuRouteWrapper(this, &MenuRoute::exportRoute));
MenuIntInput* deleteWrapper = new MenuIntInput(1, new MenuRouteWrapper(this, &MenuRoute::deleteRoute));
MenuActionRoute* clearWrapper = new MenuActionRoute(this, &MenuRoute::clearRoute); MenuActionRoute* clearWrapper = new MenuActionRoute(this, &MenuRoute::clearRoute);
importWrapper->setLcd(this->lcd); importWrapper->setLcd(this->lcd);
@@ -107,15 +102,16 @@ void MenuRoute::init() {
exportWrapper->setPrintParentMenu(false); exportWrapper->setPrintParentMenu(false);
exportWrapper->setEntry(0, "Export Route"); exportWrapper->setEntry(0, "Export Route");
MenuAction* pointsAction = new MenuAction("Points", pointsMenu); deleteWrapper->setLcd(this->lcd);
MenuAction* importAction = new MenuAction("Import", importWrapper); deleteWrapper->setMinMax(0, 100);
MenuAction* exportAction = new MenuAction("Export", exportWrapper); deleteWrapper->setPrintParentMenu(false);
MenuAction* clearAction = new MenuAction("Clear", clearWrapper); deleteWrapper->setEntry(0, "Delete Route");
this->mainMenu->addEntry(pointsAction); this->mainMenu->addEntry(new MenuAction("Points", pointsMenu));
this->mainMenu->addEntry(importAction); this->mainMenu->addEntry(new MenuAction("Clear", clearWrapper));
this->mainMenu->addEntry(exportAction); this->mainMenu->addEntry(new MenuAction("Import", importWrapper));
this->mainMenu->addEntry(clearAction); this->mainMenu->addEntry(new MenuAction("Export", exportWrapper));
this->mainMenu->addEntry(new MenuAction("Delete", deleteWrapper));
} }
void MenuRoute::importRoute(uint8_t routeNumber) { void MenuRoute::importRoute(uint8_t routeNumber) {
@@ -236,6 +232,52 @@ void MenuRoute::exportRoute(uint8_t routeNumber) {
http.end(); http.end();
} }
void MenuRoute::deleteRoute(uint8_t routeNumber) {
this->blockInput = true;
String lineOne = "";
String lineTwo = "";
if (WiFi.status() != WL_CONNECTED) {
lineOne = "Not connected to";
lineTwo = "the WiFi.";
this->print(lineOne, lineTwo);
this->blockInput = false;
return;
}
if (ESP.getMaxAllocHeap() < JSON_DOCUMENT_SIZE_ROUTE) {
lineOne = "Not enough mem";
lineTwo = "for Json obj";
this->print(lineOne, lineTwo);
this->blockInput = false;
return;
}
WiFiClient client;
HTTPClient http;
DynamicJsonDocument doc(JSON_DOCUMENT_SIZE_ROUTE);
String host = "http://rover.kleiax.de/api/";
host.concat(routeNumber);
http.begin(client, host);
int httpResponseCode = http.sendRequest("DELETE");
lineOne = "Delete complete";
lineTwo = "Code: ";
if (httpResponseCode == 202)
deserializeJson(doc, http.getStream());
else
lineOne = "HTTP Error";
lineTwo.concat(httpResponseCode);
this->print(lineOne, lineTwo);
this->blockInput = false;
http.end();
}
void MenuRoute::clearRoute(uint8_t none) { void MenuRoute::clearRoute(uint8_t none) {
this->route->clear(); this->route->clear();
this->print("Currente route", "deleted..."); this->print("Currente route", "deleted...");
+2
View File
@@ -109,6 +109,8 @@ class MenuRoute : public MenuControl {
*/ */
void exportRoute(uint8_t routeNumber); void exportRoute(uint8_t routeNumber);
void deleteRoute(uint8_t routeNumber);
/** /**
* @brief Delete the current Route. * @brief Delete the current Route.
* *