From 32cde90b59165495537e1703c36754932a958ef4 Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Sat, 17 Apr 2021 00:25:09 +0200
Subject: [PATCH] Basic webserver commands

---
 ampel-firmware/web_server.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp
index 9cba04f..0325660 100644
--- a/ampel-firmware/web_server.cpp
+++ b/ampel-firmware/web_server.cpp
@@ -22,6 +22,7 @@ namespace web_server {
   const char *script_template;
   void handleWebServerRoot();
   void handlePageNotFound();
+  void handleWebServerCommand();
 
 #ifdef AMPEL_CSV
   void handleDeleteCSV();
@@ -173,6 +174,7 @@ namespace web_server {
 
     // Web-server
     http.on("/", handleWebServerRoot);
+    http.on("/command", handleWebServerCommand);
 #ifdef AMPEL_CSV
     http.on("/" + csv_writer::filename, handleWebServerCSV);
     http.on("/delete_csv", HTTP_POST, handleDeleteCSV);
@@ -275,6 +277,15 @@ namespace web_server {
   }
 #endif
 
+  void handleWebServerCommand() {
+    if (!shouldBeAllowed()) {
+      return http.requestAuthentication(DIGEST_AUTH);
+    }
+    sensor_commands::run(http.arg("send").c_str());
+    http.sendHeader("Location", "/");
+    http.send(303);
+  }
+
   void handlePageNotFound() {
     http.send(404, F("text/plain"), F("404: Not found"));
   }
-- 
GitLab