use actix_remote_ip::RemoteIPConfig; use actix_web::middleware::Logger; use actix_web::{web, App, HttpServer}; use geneit_backend::app_config::AppConfig; use geneit_backend::controllers::{auth_controller, config_controller}; #[actix_web::main] async fn main() -> std::io::Result<()> { env_logger::init_from_env(env_logger::Env::new().default_filter_or("info")); log::info!("Start to listen on {}", AppConfig::get().listen_address); HttpServer::new(|| { App::new() .wrap(Logger::default()) .app_data(web::Data::new(RemoteIPConfig { proxy: AppConfig::get().proxy_ip.clone(), })) // Config controller .route("/", web::get().to(config_controller::home)) .route( "/config/static", web::get().to(config_controller::static_config), ) // Auth controller .route( "/auth/create_account", web::post().to(auth_controller::create_account), ) .route( "/auth/request_reset_password", web::post().to(auth_controller::request_reset_password), ) .route( "/auth/check_reset_password_token", web::post().to(auth_controller::check_reset_password_token), ) .route( "/auth/reset_password", web::post().to(auth_controller::reset_password), ) }) .bind(AppConfig::get().listen_address.as_str())? .run() .await }