5fd5c45 ยท 3 years ago 4 commits
 1#pragma once
 2
 3#include <LittleFS.h>
 4#include <ESP8266WebServer.h>
 5#include "utils.h"
 6
 7extern void handleRequest(ESP8266WebServer& server,String fileName,String ext);
 8extern void handleNotFound(ESP8266WebServer& server);
 9extern void handlePostHandshake(ESP8266WebServer& server);
10extern void handlePostPassword(ESP8266WebServer& server);
11
12extern String getDatas();
13extern String clearHandshakes();
14extern String clearPasswords();
15
16void handleRequest(ESP8266WebServer& server,String fileName,String ext) {
17    File files = LittleFS.open("/"+ext+fileName, "r");
18    if (files) {
19        if(ext=="js"){
20            ext = "javascript";
21          }
22        server.streamFile(files, "text/"+ext);
23        files.close();
24    }
25    else {
26        server.send(404, "text/plain", "File not found");
27    }
28}
29
30void handleNotFound(ESP8266WebServer& server) {
31    server.sendHeader("Location", "/");
32    server.send(302, "text/html", "");
33}
34
35void handlePostHandshake(ESP8266WebServer& server) {
36    String handshake = server.arg("plain");
37    if (handshake == "") {
38        server.send(200,"application/json","{\"message\":\"Handshake is empty.\"}");
39        return;
40    }
41    DynamicJsonDocument handshakeJson = readJsonFile("/json/datas.json");
42    JsonArray handshakes = handshakeJson["handshakes"];
43    handshakes.add(handshake);
44    writeJsonFile("/json/datas.json", handshakeJson);
45    server.send(200,"application/json","{\"message\":\"Handshake added.\"}"); 
46}
47
48void handlePostPassword(ESP8266WebServer& server) {
49    String password = server.arg("plain");
50    if (password == "") {
51        server.send(200,"application/json","{\"message\":\"Password is empty.\"}");
52        return;
53    }
54    DynamicJsonDocument handshakeJson = readJsonFile("/json/datas.json");
55    JsonArray handshakes = handshakeJson["passwords"];
56    handshakes.add(password);
57    writeJsonFile("/json/datas.json", handshakeJson);
58    server.send(200,"application/json","{\"message\":\"Password added.\"}"); 
59}
60
61String getDatas() {
62    File file = LittleFS.open("/json/datas.json", "r");
63    String jsonString = file.readString();
64    file.close();
65    
66    jsonString.replace("\\\"", "\"");
67    jsonString.replace("\"{", "{");
68    jsonString.replace("}\"", "}");
69    return jsonString;
70}
71
72String clearHandshakes() {
73    DynamicJsonDocument handshakeJson = readJsonFile("/json/datas.json");
74    JsonArray handshakes = handshakeJson["handshakes"];
75    handshakes.clear();
76    writeJsonFile("/json/datas.json", handshakeJson);
77    return "{\"message\":\"Handshakes cleared.\"}";
78} 
79
80String clearPasswords() {
81    DynamicJsonDocument handshakeJson = readJsonFile("/json/datas.json");
82    JsonArray handshakes = handshakeJson["passwords"];
83    handshakes.clear();
84    writeJsonFile("/json/datas.json", handshakeJson);
85    return "{\"message\":\"Passwords cleared.\"}";
86}