aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs18
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())})