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
25 lines
672 B
extern crate actix_web;
|
|
|
|
use std::sync::Arc;
|
|
|
|
use actix_web::{App, http};
|
|
use actix_web::middleware::Logger;
|
|
use cloudflare::Cloudflare;
|
|
|
|
use crate::config::model::Config;
|
|
use crate::server;
|
|
|
|
pub struct AppState {
|
|
pub config: Arc<Config>,
|
|
pub cloudflare: Arc<Cloudflare>
|
|
}
|
|
|
|
pub fn create(config: Arc<Config>, cloudflare: Arc<Cloudflare>) -> App<AppState> {
|
|
actix_web::App::with_state(AppState { config, cloudflare })
|
|
.middleware(Logger::default())
|
|
.scope("api/", server::api::route)
|
|
.resource("/health", |r| {
|
|
r.method(http::Method::GET).with(server::healthcheck)
|
|
})
|
|
.resource("/", |r| r.f(server::index))
|
|
}
|