Add testing flag and CORS

This commit is contained in:
Elnu 2022-07-09 12:21:08 -07:00
parent 2699a01c54
commit f6281b8820
4 changed files with 35 additions and 3 deletions

View file

@ -7,7 +7,10 @@ pub struct Database {
}
impl Database {
pub fn new() -> Result<Self> {
pub fn new(testing: bool) -> Result<Self> {
if !testing {
unimplemented!("Persistent databases unimplemented!");
}
let conn = Connection::open_in_memory()?;
conn.execute(
"CREATE TABLE comment (

View file

@ -1,11 +1,12 @@
mod comment;
use actix_cors::Cors;
pub use comment::*;
mod database;
pub use database::Database;
use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};
use std::sync::Mutex;
use std::{env, sync::Mutex};
use validator::Validate;
struct AppState {
@ -45,13 +46,24 @@ async fn post_comment(data: web::Data<AppState>, bytes: web::Bytes) -> impl Resp
#[actix_web::main]
async fn main() -> Result<(), std::io::Error> {
let db = Database::new().unwrap();
let testing = {
let mut testing = false;
for argument in env::args() {
if argument == "--testing" || argument == "-t" {
testing = true;
break;
}
}
testing
};
let db = Database::new(testing).unwrap();
let state = web::Data::new(AppState { db: Mutex::new(db) });
HttpServer::new(move || {
App::new()
.service(get_comments)
.service(post_comment)
.app_data(state.clone())
.wrap(if testing { Cors::permissive() } else { Cors::default() })
})
.bind(("127.0.0.1", 8080))?
.run()