diff --git a/src/main.rs b/src/main.rs index aee2c29..16c224c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,19 +5,28 @@ extern crate lazy_static; mod client; mod note; +mod size; mod store; #[actix_web::main] async fn main() -> std::io::Result<()> { - HttpServer::new(|| { + return HttpServer::new(|| { App::new() + // .configure(|cfg: &mut web::ServiceConfig| { + // let limit_string = std::env::var("SIZE_LIMIT").unwrap_or("0.1 KiB".to_string()); + // let limit = Byte::from_str(limit_string.clone()).unwrap().get_bytes() as usize; + // println!("SIZE_LIMIT: {}, {}", limit_string, limit); + // let config = web::JsonConfig::default().limit(limit); + // cfg.data(config); + // }) .wrap(middleware::Compress::default()) .wrap(middleware::DefaultHeaders::default()) + .configure(size::init) .configure(note::init) .configure(client::init) .default_service(web::resource("").route(web::get().to(client::fallback_fn))) }) .bind("0.0.0.0:5000")? .run() - .await + .await; } diff --git a/src/size.rs b/src/size.rs new file mode 100644 index 0000000..ff4fbf6 --- /dev/null +++ b/src/size.rs @@ -0,0 +1,10 @@ +use actix_web::web; +use byte_unit::Byte; + +pub fn init(cfg: &mut web::ServiceConfig) { + let limit_string = std::env::var("SIZE_LIMIT").unwrap_or("1 KiB".to_string()); + let limit = Byte::from_str(limit_string.clone()).unwrap().get_bytes() as usize; + println!("SIZE_LIMIT: {}, {}", limit_string, limit); + let config = web::JsonConfig::default().limit(limit); + cfg.data(config); +}