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.

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