diff options
author | curly <curlybryce@protonmail.com> | 2023-02-08 18:54:16 -0700 |
---|---|---|
committer | curly <curlybryce@protonmail.com> | 2023-02-08 18:54:16 -0700 |
commit | 58300710ed6bc9f0734fa3fbdaac6c38dfb8a790 (patch) | |
tree | f4567f355e79465cdade3fff88ec2aa9ef66ee17 /src/main.rs | |
parent | 2131176edc37761e8c4bd4819e0a9f9156bb7c76 (diff) | |
download | rocket_test-58300710ed6bc9f0734fa3fbdaac6c38dfb8a790.tar.gz rocket_test-58300710ed6bc9f0734fa3fbdaac6c38dfb8a790.tar.bz2 rocket_test-58300710ed6bc9f0734fa3fbdaac6c38dfb8a790.zip |
POST and more
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 52 |
1 files changed, 17 insertions, 35 deletions
diff --git a/src/main.rs b/src/main.rs index 3e12e1f..9ed4ddc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ mod database; use rocket::serde::json::Json; use rocket::State; use std::sync::Mutex; -use database::types::{Message, User, Info}; +use database::types::{Message, User, Info, UID, ReceiveMessage}; struct SharedDB { @@ -25,9 +25,9 @@ fn get_message(id: usize, db: &State<SharedDB>) -> Json<Response<Message, &'stat } } #[get("/get_message_id_list/<id_start>/<id_end>")] -fn get_message_id_list(id_start: usize, id_end: usize, db: &State<SharedDB>) -> Json<Response<Vec<usize>, &'static str>> { +fn get_message_id_list(id_start: u64, id_end: u64, db: &State<SharedDB>) -> Json<Response<Vec<UID>, &'static str>> { let lock = db.sdb.lock().unwrap(); - let list = lock.get_message_id_list(id_start, id_end); + let list = lock.get_message_id_list(id_start.into(), id_end.into()); if list.len() == 0 { Json(Response(Err("No messages"))) @@ -36,7 +36,7 @@ fn get_message_id_list(id_start: usize, id_end: usize, db: &State<SharedDB>) -> } } #[get("/get_message_id_newest")] -fn get_message_id_newest(db: &State<SharedDB>) -> Json<Response<usize, &'static str>> { +fn get_message_id_newest(db: &State<SharedDB>) -> Json<Response<UID, &'static str>> { let lock = db.sdb.lock().unwrap(); match lock.get_message_newest_id() { Some(n) => Json(Response(Ok(n))), @@ -44,45 +44,28 @@ fn get_message_id_newest(db: &State<SharedDB>) -> Json<Response<usize, &'static } } -#[get("/send_message/<user_id>/<msg>")] -fn send_message(user_id: usize, msg: String, db: &State<SharedDB>) -> Json<Response<usize, &'static str>> { +#[post("/send_message", format = "application/json", data = "<message>")] +fn send_message(message: Json<ReceiveMessage>, db: &State<SharedDB>) -> Json<Response<UID, &'static str>> { let mut lock = db.sdb.lock().unwrap(); - let user = match lock.get_user(user_id) { - Some(n) => n, - None => return Json(Response(Err("User not found"))) - }; - let msg = Message::new(msg, user, lock.get_next_message_id(), None); + let id = lock.get_next_message_id(); + let message = message.fill(id); - let send = lock.send_message(&msg); + let send = lock.send_message(&message); Json(Response(send)) } -#[get("/send_reply/<user_id>/<message_id>/<msg>")] -fn send_reply(user_id: usize, message_id: usize, msg: String, db: &State<SharedDB>) -> Json<Response<usize, &'static str>> { +#[delete("/delete_message", format = "application/json", data = "<id>")] +fn delete_message(id: Json<UID>, db: &State<SharedDB>) -> Json<Response<&'static str, &'static str>> { let mut lock = db.sdb.lock().unwrap(); - let user = match lock.get_user(user_id) { - Some(n) => n, - None => return Json(Response(Err("User not found"))) - }; - let msg = Message::new(msg, user, lock.get_next_message_id(), Some(message_id)); - - let send = lock.send_message(&msg); - Json(Response(send)) -} - -#[get("/delete_message/<id>")] -fn delete_message(id: usize, db: &State<SharedDB>) -> Json<Response<&'static str, &'static str>> { - let mut lock = db.sdb.lock().unwrap(); - - Json(Response(lock.delete_message(id))) + Json(Response(lock.delete_message(id.0))) } #[get("/get_user/<id>")] -fn get_user(id: usize, db: &State<SharedDB>) -> Json<Response<User, &'static str>> { +fn get_user(id: u64, db: &State<SharedDB>) -> Json<Response<User, &'static str>> { let lock = db.sdb.lock().unwrap(); - match lock.get_user(id) { + match lock.get_user(id.into()) { Some(n) => Json(Response(Ok(n))), None => Json(Response(Err("User not found"))) } @@ -95,11 +78,11 @@ fn get_user_by_name(name: String, db: &State<SharedDB>) -> Json<Response<User, & None => Json(Response(Err("User not found"))) } } -#[get("/create_user/<name>")] -fn create_user(name: String, db: &State<SharedDB>) -> Json<Response<usize, &'static str>> { +#[post("/create_user", format = "application/json", data = "<name>")] +fn create_user(name: Json<String>, db: &State<SharedDB>) -> Json<Response<UID, &'static str>> { let mut lock = db.sdb.lock().unwrap(); - Json(Response(lock.create_user(name))) + Json(Response(lock.create_user(name.0))) } #[get("/ping")] @@ -131,7 +114,6 @@ fn rocket() -> _ { create_user, get_user_by_name, get_message_id_newest, - send_reply, delete_message, ]) .mount("/", routes![api_index]) |