A cloudflare backed DDNS service written in Rust
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.

25 lines
672 B

  1. extern crate actix_web;
  2. use std::sync::Arc;
  3. use actix_web::{App, http};
  4. use actix_web::middleware::Logger;
  5. use cloudflare::Cloudflare;
  6. use crate::config::model::Config;
  7. use crate::server;
  8. pub struct AppState {
  9. pub config: Arc<Config>,
  10. pub cloudflare: Arc<Cloudflare>
  11. }
  12. pub fn create(config: Arc<Config>, cloudflare: Arc<Cloudflare>) -> App<AppState> {
  13. actix_web::App::with_state(AppState { config, cloudflare })
  14. .middleware(Logger::default())
  15. .scope("api/", server::api::route)
  16. .resource("/health", |r| {
  17. r.method(http::Method::GET).with(server::healthcheck)
  18. })
  19. .resource("/", |r| r.f(server::index))
  20. }