-
Notifications
You must be signed in to change notification settings - Fork 0
/
ExecutionHandler.h
75 lines (66 loc) · 2.29 KB
/
ExecutionHandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
void addHeadersToCall(HTTPClient& http, JsonArray httpHeaders){
for(JsonVariant v : httpHeaders){
http.addHeader(v["headerKey"].as<String>(), v["headerValue"].as<String>());
}
}
void handleGETRequest(String url, JsonArray httpHeaders, String fingerprint){
if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
HTTPClient http; //Declare an object of class HTTPClient
if(fingerprint != ""){
http.begin(url, fingerprint); //Specify request destination
}
else{
http.begin(url); //Specify request destination
}
if(httpHeaders.size() > 0){
addHeadersToCall(http, httpHeaders);
}
int httpCode = http.GET(); //Send the request
if (httpCode > 0) { //Check the returning code
String payload = http.getString(); //Get the request response payload
}
http.end();
}
}
void handlePOSTRequest(String url, String body, JsonArray httpHeaders, String fingerprint){
if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
HTTPClient http; //Declare an object of class HTTPClient
if(fingerprint != ""){
http.begin(url, fingerprint); //Specify request destination
}
else{
http.begin(url); //Specify request destination
}
if(httpHeaders.size() > 0){
addHeadersToCall(http, httpHeaders);
}
int httpCode = http.POST(body); //Send the request
if (httpCode > 0) { //Check the returning code
String payload = http.getString(); //Get the request response payload
}
http.end();
}
}
//Executes the API call with a provided fingerprint
void handleApiCall(String url, String requestType, JsonArray httpHeaders, String body, String fingerprint = configJson["fingerprint"]) {
if(requestType == "POST"){
handlePOSTRequest(url, body, httpHeaders, fingerprint);
}
else{
handleGETRequest(url, httpHeaders, fingerprint);
}
}
//Handles the changing of the pages
void handleBoardChange(int keyNumber) {
if (buttons["pages"].size() >= keyNumber) {
page = keyNumber - 1;
setCurrentBoard();
altKeyPressed = false;
interateOverButtonsOnPage();
}
}
//Handles the socket command
void handleSocketCommand(String command_id) {
String command = String() + "{\"id\":" + command_id + ",\"isTapStart\":false}";
client.emit("exec_shortcut", command.c_str());
}