settings api completed
This commit is contained in:
		
							parent
							
								
									dc995d6e7e
								
							
						
					
					
						commit
						8caffd50b2
					
				
							
								
								
									
										3
									
								
								Notes.md
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								Notes.md
									
									
									
									
									
								
							| @ -36,3 +36,6 @@ | ||||
|     + Mode 0 - station; 1 - client 4C uint8 | ||||
|     + AuthError Timeout (secs) 4D | ||||
|     + OpenLock hold (secs) 4E | ||||
| ### 20.03.2022 | ||||
| + settings API implemented and tested | ||||
| + TODO: factory reset | ||||
| @ -22,7 +22,7 @@ bool WebConsole::init(Config *config, userdb::UserDb *userdb) | ||||
|     Serial.println(WiFi.softAPConfig(_config->ip, _config->gw, _config->subnet) ? "Ready" : "Failed!"); | ||||
|     Serial.print("\t2. DNS config... "); | ||||
|     Serial.println(_dnsServer->start(53, "*", _config->ip) ? "Ready" : "Failed!"); | ||||
|     Serial.print("\t3 AP setup <SSID:\"" + String(_config->SSID) + "\"..."); | ||||
|     Serial.print("\t3 AP setup SSID:\"" + String(_config->SSID) + "\"... "); | ||||
|     if (strlen(_config->PASS) > 0) | ||||
|         Serial.println(WiFi.softAP(_config->SSID, _config->PASS) ? "Ready" : "Failed!"); | ||||
|     else | ||||
| @ -45,7 +45,7 @@ bool WebConsole::init(Config *config, userdb::UserDb *userdb) | ||||
|     _server->on(UriBraces("/api/user/{}"), HTTPMethod::HTTP_GET, std::bind(&WebConsole::_getUser, this)); | ||||
|     _server->on(UriBraces("/api/user/{}"), HTTPMethod::HTTP_PUT, std::bind(&WebConsole::_createUser, this)); | ||||
|     _server->on(UriBraces("/api/user/{}"), HTTPMethod::HTTP_POST, std::bind(&WebConsole::_updateUser, this)); | ||||
|     _server->on(UriBraces("/api/config/{}"), std::bind(&WebConsole::_deleteUser, this)); | ||||
|     _server->on(UriBraces("/api/config"), std::bind(&WebConsole::_settings, this)); | ||||
|     _server->serveStatic("/", LittleFS, "/s/"); | ||||
|     _server->onNotFound(std::bind(&WebConsole::_handleUnknown, this)); | ||||
|     return true; | ||||
| @ -131,6 +131,8 @@ void WebConsole::_auth() | ||||
| void WebConsole::_settings() | ||||
| { | ||||
|     _sendCORS(); | ||||
|     if (!_isAuth()) | ||||
|         return; | ||||
|     String action = _server->arg("action"); | ||||
|     if (action.equals("update")) | ||||
|     { | ||||
| @ -155,10 +157,10 @@ void WebConsole::_settings() | ||||
|                 sucess |= 0b00000010; | ||||
|         } | ||||
| 
 | ||||
|         if (_server->hasArg("IP")) | ||||
|         if (_server->hasArg("ip")) | ||||
|         { | ||||
|             IPAddress temp; | ||||
|             if (temp.fromString(_server->arg("IP"))) | ||||
|             if (temp.fromString(_server->arg("ip"))) | ||||
|             { | ||||
|                 _config->ip = temp.v4(); | ||||
|                 sucess |= 0b00000100; | ||||
| @ -166,10 +168,10 @@ void WebConsole::_settings() | ||||
|             else | ||||
|                 error |= 0b00000100; | ||||
|         } | ||||
|         if (_server->hasArg("SUBNET")) | ||||
|         if (_server->hasArg("subnet")) | ||||
|         { | ||||
|             IPAddress temp; | ||||
|             if (temp.fromString(_server->arg("SUBNET"))) | ||||
|             if (temp.fromString(_server->arg("subnet"))) | ||||
|             { | ||||
|                 _config->subnet = temp.v4(); | ||||
|                 sucess |= 0b00001000; | ||||
| @ -177,10 +179,10 @@ void WebConsole::_settings() | ||||
|             else | ||||
|                 error |= 0b00001000; | ||||
|         } | ||||
|         if (_server->hasArg("GW")) | ||||
|         if (_server->hasArg("gw")) | ||||
|         { | ||||
|             IPAddress temp; | ||||
|             if (temp.fromString(_server->arg("GW"))) | ||||
|             if (temp.fromString(_server->arg("gw"))) | ||||
|             { | ||||
|                 _config->gw = temp.v4(); | ||||
|                 sucess |= 0b00010000; | ||||
| @ -188,25 +190,25 @@ void WebConsole::_settings() | ||||
|             else | ||||
|                 error |= 0b00010000; | ||||
|         } | ||||
|         if (_server->hasArg("MODE")) | ||||
|         if (_server->hasArg("mode")) | ||||
|         { | ||||
|             _config->mode = _server->arg("MODE").toInt(); | ||||
|             _config->mode = _server->arg("mode").toInt(); | ||||
|             if (_config->mode >= 0 && _config->mode <= 1) | ||||
|                 sucess |= 0b00100000; | ||||
|             else | ||||
|                 error |= 0b00100000; | ||||
|         } | ||||
|         if (_server->hasArg("FAIL_TIMEOUT")) | ||||
|         if (_server->hasArg("fail_timeout")) | ||||
|         { | ||||
|             _config->fail_timeout = _server->arg("FAIL_TIMEOUT").toInt(); | ||||
|             _config->fail_timeout = _server->arg("fail_timeout").toInt(); | ||||
|             if (_config->fail_timeout >= 0 && _config->fail_timeout <= 250) | ||||
|                 sucess |= 0b01000000; | ||||
|             else | ||||
|                 error |= 0b01000000; | ||||
|         } | ||||
|         if (_server->hasArg("HOLD_TIME")) | ||||
|         if (_server->hasArg("hold_time")) | ||||
|         { | ||||
|             _config->hold_time = _server->arg("HOLD_TIME").toInt(); | ||||
|             _config->hold_time = _server->arg("hold_time").toInt(); | ||||
|             if (_config->hold_time > 0 && _config->hold_time <= 250) | ||||
|                 sucess |= 0b10000000; | ||||
|             else | ||||
| @ -222,7 +224,15 @@ void WebConsole::_settings() | ||||
|             _config->loadBin(); | ||||
|             _server->send(200, "text/json", "{\"status\":\"failed\", \"sucess\":\"" + String(sucess) + "\", \"error\":\"" + String(error) + "\"}"); | ||||
|         } | ||||
|         else | ||||
|             _server->send(200, "text/json", "{\"status\":\"noting_todo\"}"); | ||||
|     } | ||||
|     else if (action.equals("get")) | ||||
|     { | ||||
|         _server->send(200, "text/json", "{\"SSID\":\"" + String(_config->SSID) + "\", \"PASS\":\"" + String(_config->PASS) + "\", \"ip\":\"" + IPAddress(_config->ip).toString() + "\", \"subnet\":\"" + IPAddress(_config->subnet).toString() + "\", \"gw\":\"" + IPAddress(_config->gw).toString() + "\", \"fail_timeout\":\"" + String(_config->fail_timeout) + "\", \"hold_time\":\"" + String(_config->hold_time) + "\"}"); | ||||
|     } | ||||
|     else | ||||
|         _server->send(404, "text/plain", "unknown action"); | ||||
| } | ||||
| void WebConsole::_sendCORS() | ||||
| { | ||||
|  | ||||
| @ -34,7 +34,6 @@ void setup() | ||||
| 	rfid.begin(); | ||||
| 	web.attachRfid(&rfid); | ||||
| 	iface.begin(&keyboard); | ||||
| 	config.print(); | ||||
| } | ||||
| 
 | ||||
| void loop() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user