diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 1955963..af0234a 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, UID, ReceiveMessage}; +use database::types::*; struct SharedDB { @@ -119,6 +119,20 @@ fn delete_user(id: Json<UID>, db: &State<SharedDB>) -> Json<Response<&'static st Json(Response(lock.delete_user(id.0))) } +#[post("/set_user_data", format = "application/json", data = "<data>")] +fn set_user_data(data: Json<ReceiveUpdateField>, db: &State<SharedDB>) -> Json<Response<&'static str, &'static str>> { + let lock = db.sdb.lock().unwrap(); + + Json(Response(lock.set_user_field(data.field, data.user, data.data.clone()))) +} + +#[post("/set_user_status", format = "application/json", data = "<data>")] +fn set_user_status(data: Json<ReceiveStatus>, db: &State<SharedDB>) -> Json<Response<&'static str, &'static str>> { + let lock = db.sdb.lock().unwrap(); + + Json(Response(lock.set_user_status(data.user, data.status))) +} + #[get("/ping")] fn ping() -> Json<Response<&'static str, &'static str>> { Json(Response(Ok("pong"))) @@ -151,6 +165,8 @@ fn rocket() -> _ { delete_message, delete_user, get_message_list, + set_user_data, + set_user_status, ]) .mount("/", routes![api_index]) .manage(SharedDB{sdb: Mutex::new(database::Database::new())}) |