Files
advanced_db/src/main.rs

66 lines
1.8 KiB
Rust
Raw Normal View History

use log::{info, warn, error};
use env_logger::Env;
2023-04-27 23:59:14 -04:00
use actix_web::{web, get, post, web::Json, App, HttpResponse, HttpServer, Responder, middleware, cookie::Key};
2023-04-27 01:46:34 -04:00
use serde::{Deserialize, Serialize};
2023-04-27 23:59:14 -04:00
use actix_cors::Cors;
use actix_identity::IdentityMiddleware;
use actix_session::{SessionMiddleware, storage::CookieSessionStore};
mod api;
2023-04-27 23:59:14 -04:00
static PORT: u16 = 5000;
const ALLOWED_ORIGIN: &str = "http://localhost";
2023-04-27 01:46:34 -04:00
#[derive(Default, Debug, Serialize, Deserialize, Clone)]
struct Login {
net_id: String,
password: String,
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
//init logging system
let env = Env::default().filter_or("LOG_LEVEL", "info");
env_logger::init_from_env(env);
2023-04-27 23:59:14 -04:00
let secret_key = Key::generate();
let _ = HttpServer::new(move || {
2023-04-27 01:46:34 -04:00
App::new()
2023-04-27 23:59:14 -04:00
.wrap(middleware::Logger::default())
.wrap(
Cors::default()
.allowed_origin(ALLOWED_ORIGIN)
.allowed_methods(vec!["GET","POST","DELETE"])
.supports_credentials()
)
.wrap(IdentityMiddleware::default())
.wrap(SessionMiddleware::new(CookieSessionStore::default(), secret_key.clone()))
.service(
web::scope("/api")
.service(
web::resource("/auth")
.route(web::post().to(api::user::login))
.route(web::delete().to(api::user::logout))
)
.route("/", web::get().to(api_index))
)
.route("/", web::get().to(index))
})
.bind(("127.0.0.1", PORT))?
2023-04-27 01:46:34 -04:00
.run()
.await;
2023-04-27 01:46:34 -04:00
Ok(())
}
2023-04-27 23:59:14 -04:00
async fn api_index() -> impl Responder {
HttpResponse::Ok().body("api")
}
2023-04-27 01:46:34 -04:00
async fn index() -> impl Responder {
2023-04-27 23:59:14 -04:00
HttpResponse::Ok().body("/")
2023-04-27 01:46:34 -04:00
}