Newer
Older
use actix_web::{get, App, HttpResponse, HttpServer, Responder};
async fn page(
website: actix_web::web::Data<WebSite>,
Some(page) => HttpResponse::Ok().body(page.html_doc.to_string()),
None => HttpResponse::NotFound().body(format!("Not found {}", pth.display())),
}
#[get("/admin/dashboard")]
async fn admin_dashboard() -> impl Responder {
HttpResponse::Ok().body("Admin")
}
#[get("/admin/login")]
async fn admin_login() -> impl Responder {
HttpResponse::Ok().body("Login")
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let app_state = AppState::new();
let website = WebSite::load(&app_state.config);
let mut static_files_manager = StaticFilesManager::new(&app_state).unwrap();
let host = app_state.config.host.clone();
let port = app_state.config.port;
let port_tls = app_state.config.port_tls;
let static_files_manager =
actix_web::web::Data::new(std::sync::Mutex::new(static_files_manager));
let app_state = actix_web::web::Data::new(std::sync::Mutex::new(app_state));
App::new()
.wrap(actix_web::middleware::Logger::default())
.app_data(actix_web::web::Data::clone(&static_files_manager))
.service(admin_dashboard)
.service(admin_login)
.service(page)
.bind(format!("{}:{}", host, port))?
.bind_rustls(format!("{}:{}", host, port_tls), srv_conf)?