Files
advanced_db/backend/src/main.rs

75 lines
2.1 KiB
Rust
Raw Normal View History

use env_logger::Env;
2023-04-29 22:10:54 -04:00
use actix_web::{web, 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};
2023-04-28 00:19:45 -04:00
2023-04-27 23:59:14 -04:00
mod api;
2023-04-29 22:10:54 -04:00
static PORT: u16 = 8000;
const ALLOWED_ORIGIN: &str = "http://localhost:8009";
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()
2023-04-29 22:10:54 -04:00
.allow_any_header()
2023-04-27 23:59:14 -04:00
)
.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))
)
2023-04-28 00:46:47 -04:00
.service(
web::resource("/signup")
.route(web::post().to(api::user::signup))
)
2023-04-30 16:01:13 -04:00
.service(
web::resource("/eatery/{eatery_id}")
.route(web::get().to(api::eatery::menu))
)
2023-04-27 23:59:14 -04:00
.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
}