diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 3ad8b1bf819ece89261ebf21b12d4de302fcbec8..3640104efbdab12df3b6e9473bbef84a627e732f 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -6,5 +6,5 @@ mod user; pub fn mount(rocket: Rocket) -> Rocket { rocket .mount("/api/account", routes![ account::create, account::verify_email, account::resend_email, account::login ]) - .mount("/api/users", routes![ user::me, user::lookup ]) + .mount("/api/users", routes![ user::me, user::dms, user::lookup ]) } diff --git a/src/routes/user.rs b/src/routes/user.rs index a265b0b77869d7482bf0022c1a795481d6b110a6..8f74db42997ce6f15c508a6582d3ad6f5d48b66e 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -6,6 +6,7 @@ use serde::{ Serialize, Deserialize }; use mongodb::options::FindOptions; use bson::{ bson, doc }; +/// retrieve your user information #[get("/@me")] pub fn me(user: User) -> JsonValue { let User ( id, username, doc ) = user; @@ -20,11 +21,19 @@ pub fn me(user: User) -> JsonValue { }) } +/// retrieve another user's information +#[get("/<id>")] +pub fn user(user: User, id: String) -> JsonValue { + json!([]) +} + #[derive(Serialize, Deserialize)] pub struct Query { username: String, } +/// lookup a user on Revolt +/// currently only supports exact username searches #[post("/lookup", data = "<query>")] pub fn lookup(_user: User, query: Json<Query>) -> JsonValue { let col = database::get_db().collection("users"); @@ -47,3 +56,39 @@ pub fn lookup(_user: User, query: Json<Query>) -> JsonValue { json!(results) } + +/// retrieve all of your DMs +#[get("/@me/dms")] +pub fn dms(user: User) -> JsonValue { + json!([]) +} + +/// open a DM with a user +#[get("/<id>/dm")] +pub fn dm(user: User, id: String) -> JsonValue { + json!([]) +} + +/// retrieve all of your friends +#[get("/@me/friend")] +pub fn get_friends(user: User) -> JsonValue { + json!([]) +} + +/// retrieve friend status with user +#[get("/<id>/friend")] +pub fn get_friend(user: User, id: String) -> JsonValue { + json!([]) +} + +/// create or accept a friend request +#[put("/<id>/friend")] +pub fn add_friend(user: User, id: String) -> JsonValue { + json!([]) +} + +/// remove a friend or deny a request +#[delete("/<id>/friend")] +pub fn remove_friend(user: User, id: String) -> JsonValue { + json!([]) +}