11 auto tofu_reset_handler = std::make_shared<HTTPRequestHandler>(
12 1 << HTTP_POST,
"/api/signalk/reset-tofu", [](httpd_req_t* req) {
15 httpd_resp_set_status(req,
"500 Internal Server Error");
16 httpd_resp_send(req,
"WebSocket client not available", 0);
20 httpd_resp_set_type(req,
"application/json");
21 httpd_resp_send(req,
"{\"status\":\"ok\"}", 0);
25 server->add_handler(tofu_reset_handler);
29 std::shared_ptr<Networking>& networking) {
30 auto scan_wifi_networks_handler = std::make_shared<HTTPRequestHandler>(
31 1 << HTTP_POST,
"/api/wifi/scan", [networking](httpd_req_t* req) {
32 networking->start_wifi_scan();
34 httpd_resp_set_status(req,
"202 Accepted");
35 httpd_resp_send(req,
"SCAN STARTED", 0);
39 server->add_handler(scan_wifi_networks_handler);
41 auto scan_results_handler = std::make_shared<HTTPRequestHandler>(
42 1 << HTTP_GET,
"/api/wifi/scan-results", [networking](httpd_req_t* req) {
43 std::vector<WiFiNetworkInfo> ssid_list;
44 int16_t result = networking->get_wifi_scan_results(ssid_list);
45 if (result == WIFI_SCAN_RUNNING) {
47 httpd_resp_set_status(req,
"202 Accepted");
48 httpd_resp_send(req,
"SCAN RUNNING", 0);
50 }
else if (result == WIFI_SCAN_FAILED) {
52 httpd_resp_set_status(req,
"400 Bad Request");
53 httpd_resp_send(req,
"SCAN FAILED", 0);
58 JsonArray networks = doc[
"networks"].to<JsonArray>();
59 for (
auto& ssid_info : ssid_list) {
60 JsonObject network = networks.add<JsonObject>();
61 ssid_info.as_json(network);
64 serializeJson(doc, json_str);
65 httpd_resp_set_type(req,
"application/json");
66 httpd_resp_send(req, json_str.c_str(), json_str.length());
70 server->add_handler(scan_results_handler);