diff --git a/Cargo.lock b/Cargo.lock index bea2407..9a85099 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1176,6 +1176,7 @@ dependencies = [ "mio", "num_cpus", "once_cell", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -1390,6 +1391,7 @@ version = "0.1.0" dependencies = [ "rocket", "serde", + "tokio", "uuid", ] diff --git a/Cargo.toml b/Cargo.toml index be923d2..c69372e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,13 +6,20 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -rocket = { version = "0.5.0-rc.2", features = ["serde_json", "json"] } serde = "1.0.144" +[dependencies.rocket] +version = "0.5.0-rc.2" +features = ["serde_json", "json"] + +[dependencies.tokio] +version = "1.21.1" +features = ["full"] + [dependencies.uuid] version = "1.1.2" features = [ "v5", # Lets you generate random UUIDs "fast-rng", # Use a faster (but still sufficiently random) RNG "macro-diagnostics", # Enable better diagnostics for compile-time UUIDs -] +] \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 7aa6f34..b46db93 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,9 +10,10 @@ use rocket::{ request::{FromRequest, Outcome}, serde::json::Json, serde::*, - tokio::{fs::File, io::AsyncWriteExt}, *, }; +use tokio::fs::File; +use tokio::io::AsyncWriteExt; use uuid::Uuid; #[derive(Default)] @@ -162,6 +163,9 @@ fn not_found() -> Json { #[launch] pub fn rocket() -> _ { + let current_dir = std::env::current_dir().unwrap(); + std::fs::create_dir(current_dir.join(relative!("images"))) + .ok(); rocket::custom( Figment::from(rocket::Config::default()) .merge(Serialized::defaults(Config::default())) @@ -174,7 +178,6 @@ pub fn rocket() -> _ { .attach(AdHoc::config::()) } - #[cfg(test)] mod test { use crate::*; @@ -202,7 +205,8 @@ mod test { let response_body = response.into_json::().unwrap(); assert_eq!(response_body.successful, true); assert!(response_body.file_id.is_some()); - let response = request!(client, get, format!( "/{}", response_body.file_id.unwrap() )).dispatch(); + let response = + request!(client, get, format!("/{}", response_body.file_id.unwrap())).dispatch(); assert_eq!(response.into_bytes().unwrap().as_slice(), [0u8; 1024]); } }