Fork of the excellent esp8266-react - https://github.com/rjwats/esp8266-react
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.1 KiB

  1. #include <ESP8266React.h>
  2. ESP8266React::ESP8266React(AsyncWebServer* server, FS* fs) :
  3. _securitySettingsService(server, fs),
  4. _wifiSettingsService(server, fs, &_securitySettingsService),
  5. _apSettingsService(server, fs, &_securitySettingsService),
  6. _ntpSettingsService(server, fs, &_securitySettingsService),
  7. _otaSettingsService(server, fs, &_securitySettingsService),
  8. _restartService(server, &_securitySettingsService),
  9. _authenticationService(server, &_securitySettingsService),
  10. _wifiScanner(server, &_securitySettingsService),
  11. _wifiStatus(server, &_securitySettingsService),
  12. _ntpStatus(server, &_securitySettingsService),
  13. _apStatus(server, &_securitySettingsService),
  14. _systemStatus(server, &_securitySettingsService) {
  15. // Serve static resources from /www/
  16. server->serveStatic("/js/", SPIFFS, "/www/js/");
  17. server->serveStatic("/css/", SPIFFS, "/www/css/");
  18. server->serveStatic("/fonts/", SPIFFS, "/www/fonts/");
  19. server->serveStatic("/app/", SPIFFS, "/www/app/");
  20. server->serveStatic("/favicon.ico", SPIFFS, "/www/favicon.ico");
  21. // Serving all other get requests with "/www/index.htm"
  22. // OPTIONS get a straight up 200 response
  23. server->onNotFound([](AsyncWebServerRequest* request) {
  24. if (request->method() == HTTP_GET) {
  25. request->send(SPIFFS, "/www/index.html");
  26. } else if (request->method() == HTTP_OPTIONS) {
  27. request->send(200);
  28. } else {
  29. request->send(404);
  30. }
  31. });
  32. // Disable CORS if required
  33. #if defined(ENABLE_CORS)
  34. DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", CORS_ORIGIN);
  35. DefaultHeaders::Instance().addHeader("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization");
  36. DefaultHeaders::Instance().addHeader("Access-Control-Allow-Credentials", "true");
  37. #endif
  38. }
  39. void ESP8266React::begin() {
  40. _securitySettingsService.begin();
  41. _wifiSettingsService.begin();
  42. _apSettingsService.begin();
  43. _ntpSettingsService.begin();
  44. _otaSettingsService.begin();
  45. }
  46. void ESP8266React::loop() {
  47. _wifiSettingsService.loop();
  48. _apSettingsService.loop();
  49. _ntpSettingsService.loop();
  50. _otaSettingsService.loop();
  51. }