2022-08-23 16:17:22 +08:00

41 lines
843 B
Rust

use actix_web::{App, HttpServer};
use sea_orm::DatabaseConnection;
use crate::Opts;
use self::controller::UserController;
mod urls;
mod controller;
mod model;
mod view;
#[derive(Debug, Clone)]
pub struct MiddlewareConnections {
pub database: DatabaseConnection,
pub redis: Option<redis::Client>,
}
#[derive(Debug, Clone)]
struct Controllers {
user: UserController,
}
pub(crate) async fn run(
conn: MiddlewareConnections,
opts: Opts,
) -> Result<(), Box<dyn std::error::Error>> {
let data = actix_web::web::Data::new(Controllers {
user: UserController::new(conn.database.clone()),
});
let server =
HttpServer::new(move || App::new().configure(urls::configure).app_data(data.clone()))
.bind((opts.address, opts.port))?;
let result = server.run().await?;
Ok(result)
}