From 4801b51ceff9cf118dc4bf034a56d66b24b16fe9 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Fri, 11 Feb 2022 21:44:59 +0000 Subject: [PATCH] fix: fixes for full mongo implementation --- Cargo.lock | 25 ++++++++++++++-------- src/main.rs | 5 ++++- src/routes/bots/edit.rs | 2 +- src/routes/channels/channel_delete.rs | 1 - src/routes/channels/group_add_member.rs | 1 - src/routes/channels/group_remove_member.rs | 1 - src/routes/channels/message_delete.rs | 1 - src/routes/channels/message_edit.rs | 2 +- src/routes/invites/invite_join.rs | 21 +++++++++++------- src/routes/servers/ban_list.rs | 2 +- src/routes/servers/member_remove.rs | 1 - src/routes/servers/server_delete.rs | 1 - src/routes/users/block_user.rs | 6 +++--- src/routes/users/remove_friend.rs | 6 +++--- src/routes/users/unblock_user.rs | 6 +++--- 15 files changed, 45 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac2f080c..755a823d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1318,7 +1318,7 @@ checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ "bytes 1.1.0", "fnv", - "itoa", + "itoa 0.4.8", ] [[package]] @@ -1384,7 +1384,7 @@ dependencies = [ "http-body 0.3.1", "httparse", "httpdate 0.3.2", - "itoa", + "itoa 0.4.8", "pin-project", "socket2 0.3.19", "tokio 0.2.25", @@ -1408,7 +1408,7 @@ dependencies = [ "http-body 0.4.3", "httparse", "httpdate 1.0.1", - "itoa", + "itoa 0.4.8", "pin-project-lite 0.2.7", "socket2 0.4.2", "tokio 1.11.0", @@ -1540,6 +1540,12 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + [[package]] name = "js-sys" version = "0.3.55" @@ -2761,7 +2767,7 @@ dependencies = [ "combine", "dtoa", "futures-util", - "itoa", + "itoa 0.4.8", "percent-encoding", "pin-project-lite 0.2.7", "sha1", @@ -2782,7 +2788,7 @@ dependencies = [ "combine", "dtoa", "futures-util", - "itoa", + "itoa 0.4.8", "percent-encoding", "pin-project-lite 0.2.7", "sha1", @@ -2956,6 +2962,7 @@ dependencies = [ "rauth", "rocket", "serde", + "serde_json", "ulid 0.5.0", "validator", ] @@ -3282,12 +3289,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.68" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" dependencies = [ "indexmap", - "itoa", + "itoa 1.0.1", "ryu", "serde", ] @@ -3299,7 +3306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" dependencies = [ "form_urlencoded", - "itoa", + "itoa 0.4.8", "ryu", "serde", ] diff --git a/src/main.rs b/src/main.rs index 2110e000..3990ca73 100644 --- a/src/main.rs +++ b/src/main.rs @@ -121,7 +121,10 @@ async fn launch_web() { }; } - let db = DatabaseInfo::MongoDb("mongodb://localhost").connect().await.unwrap(); + let db = DatabaseInfo::MongoDb("mongodb://localhost") + .connect() + .await + .unwrap(); db.migrate_database().await.unwrap(); let mongo_db = mongodb::Client::with_uri_str("mongodb://localhost") diff --git a/src/routes/bots/edit.rs b/src/routes/bots/edit.rs index ba08ea00..423544ec 100644 --- a/src/routes/bots/edit.rs +++ b/src/routes/bots/edit.rs @@ -83,7 +83,7 @@ pub async fn edit_bot(db: &Db, user: User, target: Ref, data: Json) -> Res db.update_bot(&bot.id, &partial, remove.unwrap_or_else(Vec::new)) .await?; - + bot.apply_options(partial); Ok(Json(bot)) } diff --git a/src/routes/channels/channel_delete.rs b/src/routes/channels/channel_delete.rs index 356087d6..ad957396 100644 --- a/src/routes/channels/channel_delete.rs +++ b/src/routes/channels/channel_delete.rs @@ -3,7 +3,6 @@ use revolt_quark::{ perms, ChannelPermission, Db, EmptyResponse, Error, Ref, Result, }; - #[delete("/")] pub async fn req(db: &Db, user: User, target: Ref) -> Result { let channel = target.as_channel(db).await?; diff --git a/src/routes/channels/group_add_member.rs b/src/routes/channels/group_add_member.rs index a5d9a1f0..c3b8bd68 100644 --- a/src/routes/channels/group_add_member.rs +++ b/src/routes/channels/group_add_member.rs @@ -3,7 +3,6 @@ use revolt_quark::{ perms, ChannelPermission, Db, EmptyResponse, Error, Ref, Result, }; - #[put("//recipients/")] pub async fn req(db: &Db, user: User, target: Ref, member: Ref) -> Result { let channel = target.as_channel(db).await?; diff --git a/src/routes/channels/group_remove_member.rs b/src/routes/channels/group_remove_member.rs index e62bd171..aebdc35e 100644 --- a/src/routes/channels/group_remove_member.rs +++ b/src/routes/channels/group_remove_member.rs @@ -3,7 +3,6 @@ use revolt_quark::{ Db, EmptyResponse, Error, Ref, Result, }; - #[delete("//recipients/")] pub async fn req(db: &Db, user: User, target: Ref, member: Ref) -> Result { let channel = target.as_channel(db).await?; diff --git a/src/routes/channels/message_delete.rs b/src/routes/channels/message_delete.rs index d8be1b84..622a4da6 100644 --- a/src/routes/channels/message_delete.rs +++ b/src/routes/channels/message_delete.rs @@ -1,6 +1,5 @@ use revolt_quark::{models::User, perms, ChannelPermission, Db, EmptyResponse, Error, Ref, Result}; - #[delete("//messages/")] pub async fn req(db: &Db, user: User, target: Ref, msg: Ref) -> Result { let message = msg.as_message(db).await?; diff --git a/src/routes/channels/message_edit.rs b/src/routes/channels/message_edit.rs index 27b33504..805e2ed0 100644 --- a/src/routes/channels/message_edit.rs +++ b/src/routes/channels/message_edit.rs @@ -74,6 +74,6 @@ pub async fn req( message.embeds = Some(new_embeds); partial.embeds = message.embeds.clone(); - db.update_message(&message.id, &partial, vec![]).await?; + db.update_message(&message.id, &partial).await?; Ok(Json(message)) } diff --git a/src/routes/invites/invite_join.rs b/src/routes/invites/invite_join.rs index b3be28c6..7a05e1e9 100644 --- a/src/routes/invites/invite_join.rs +++ b/src/routes/invites/invite_join.rs @@ -1,4 +1,7 @@ -use revolt_quark::{Error, Result, Ref, models::{User, Invite}, Db}; +use revolt_quark::{ + models::{Invite, User}, + Db, Error, Ref, Result, +}; use rocket::serde::json::Value; @@ -7,32 +10,34 @@ use crate::util::variables::MAX_SERVER_COUNT; #[post("/")] pub async fn req(db: &Db, user: User, target: Ref) -> Result { if user.bot.is_some() { - return Err(Error::IsBot) + return Err(Error::IsBot); } if !user.can_acquire_server(db).await? { return Err(Error::TooManyServers { - max: *MAX_SERVER_COUNT - }) + max: *MAX_SERVER_COUNT, + }); } let invite = target.as_invite(db).await?; match &invite { - Invite::Server { channel, server, .. } => { + Invite::Server { + channel, server, .. + } => { let server = db.fetch_server(server).await?; if db.fetch_ban(&server.id, &user.id).await.is_ok() { - return Err(Error::Banned) + return Err(Error::Banned); } let channel = db.fetch_channel(channel).await?; db.insert_member(&server.id, &user.id).await?; - + Ok(json!({ "type": "Server", "channel": channel, "server": server })) } - _ => unreachable!() + _ => unreachable!(), } } diff --git a/src/routes/servers/ban_list.rs b/src/routes/servers/ban_list.rs index 89e4b494..baf73934 100644 --- a/src/routes/servers/ban_list.rs +++ b/src/routes/servers/ban_list.rs @@ -1,4 +1,4 @@ -use revolt_quark::models::{File, User, ServerBan}; +use revolt_quark::models::{File, ServerBan, User}; use revolt_quark::{perms, Db, Error, Ref, Result, ServerPermission}; use rocket::serde::json::Json; diff --git a/src/routes/servers/member_remove.rs b/src/routes/servers/member_remove.rs index ab1aaaf8..30d2c5e2 100644 --- a/src/routes/servers/member_remove.rs +++ b/src/routes/servers/member_remove.rs @@ -1,6 +1,5 @@ use revolt_quark::{models::User, perms, Db, EmptyResponse, Error, Ref, Result, ServerPermission}; - #[delete("//members/")] pub async fn req(db: &Db, user: User, target: Ref, member: Ref) -> Result { let server = target.as_server(db).await?; diff --git a/src/routes/servers/server_delete.rs b/src/routes/servers/server_delete.rs index 59188d19..005e2910 100644 --- a/src/routes/servers/server_delete.rs +++ b/src/routes/servers/server_delete.rs @@ -1,6 +1,5 @@ use revolt_quark::{models::User, Db, EmptyResponse, Ref, Result}; - #[delete("/")] pub async fn req(db: &Db, user: User, target: Ref) -> Result { let server = target.as_server(db).await?; diff --git a/src/routes/users/block_user.rs b/src/routes/users/block_user.rs index 85f7dcfc..4572529f 100644 --- a/src/routes/users/block_user.rs +++ b/src/routes/users/block_user.rs @@ -4,9 +4,9 @@ use revolt_quark::{Database, Result}; use rocket::serde::json::Json; use rocket::State; -#[put("//block")] -pub async fn req(db: &State, user: User, username: String) -> Result> { - let mut target = db.fetch_user_by_username(&username).await?; +#[put("//block")] +pub async fn req(db: &State, user: User, target: String) -> Result> { + let mut target = db.fetch_user(&target).await?; user.block_user(db, &mut target).await?; Ok(Json(target.with_auto_perspective(db, &user).await)) } diff --git a/src/routes/users/remove_friend.rs b/src/routes/users/remove_friend.rs index c8fc378d..314de23f 100644 --- a/src/routes/users/remove_friend.rs +++ b/src/routes/users/remove_friend.rs @@ -4,9 +4,9 @@ use revolt_quark::{Database, Result}; use rocket::serde::json::Json; use rocket::State; -#[delete("//friend")] -pub async fn req(db: &State, user: User, username: String) -> Result> { - let mut target = db.fetch_user_by_username(&username).await?; +#[delete("//friend")] +pub async fn req(db: &State, user: User, target: String) -> Result> { + let mut target = db.fetch_user(&target).await?; user.remove_friend(db, &mut target).await?; Ok(Json(target.with_auto_perspective(db, &user).await)) } diff --git a/src/routes/users/unblock_user.rs b/src/routes/users/unblock_user.rs index a50c0aaa..b907669f 100644 --- a/src/routes/users/unblock_user.rs +++ b/src/routes/users/unblock_user.rs @@ -4,9 +4,9 @@ use revolt_quark::{Database, Result}; use rocket::serde::json::Json; use rocket::State; -#[delete("//block")] -pub async fn req(db: &State, user: User, username: String) -> Result> { - let mut target = db.fetch_user_by_username(&username).await?; +#[delete("//block")] +pub async fn req(db: &State, user: User, target: String) -> Result> { + let mut target = db.fetch_user(&target).await?; user.unblock_user(db, &mut target).await?; Ok(Json(target.with_auto_perspective(db, &user).await)) }