From 10645638a281cff0b38d95bc42e1899765026652 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Sat, 9 Apr 2022 19:03:25 +0100 Subject: [PATCH] feat: use new ServerCreate events --- src/routes/bots/invite.rs | 16 +++++------ src/routes/servers/roles_create.rs | 2 +- src/routes/servers/server_create.rs | 41 ++++++++++++++++------------- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/routes/bots/invite.rs b/src/routes/bots/invite.rs index 5a6fa66e..d18c7305 100644 --- a/src/routes/bots/invite.rs +++ b/src/routes/bots/invite.rs @@ -1,5 +1,5 @@ use revolt_quark::{ - models::{server_member::MemberCompositeKey, Channel, Member, User}, + models::{Channel, User}, perms, Db, EmptyResponse, Error, Permission, Ref, Result, }; @@ -51,15 +51,11 @@ pub async fn invite_bot( .throw_permission(db, Permission::ManageServer) .await?; - let member = Member { - id: MemberCompositeKey { - server: server.id, - user: bot.id, - }, - ..Default::default() - }; - - db.insert_member(&member).await.map(|_| EmptyResponse) + let user = db.fetch_user(&bot.id).await?; + server + .create_member(db, user, None) + .await + .map(|_| EmptyResponse) } InviteBotDestination::Group { group } => { let channel = db.fetch_channel(&group).await?; diff --git a/src/routes/servers/roles_create.rs b/src/routes/servers/roles_create.rs index 4fb7dd49..c620b6c7 100644 --- a/src/routes/servers/roles_create.rs +++ b/src/routes/servers/roles_create.rs @@ -69,6 +69,6 @@ pub async fn req( Ok(Json(NewRoleResponse { id: role.create(db, &server.id).await?, - role: role, + role, })) } diff --git a/src/routes/servers/server_create.rs b/src/routes/servers/server_create.rs index d5dab694..185bfefb 100644 --- a/src/routes/servers/server_create.rs +++ b/src/routes/servers/server_create.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use revolt_quark::{ - models::{server_member::MemberCompositeKey, Channel, Member, Server, User}, + models::{Channel, Server, User}, Db, Error, Result, DEFAULT_PERMISSION_SERVER, }; @@ -13,7 +13,7 @@ use validator::Validate; use crate::util::variables::MAX_SERVER_COUNT; /// # Server Data -#[derive(Validate, Serialize, Deserialize, JsonSchema)] +#[derive(Validate, Deserialize, JsonSchema)] pub struct DataCreateServer { /// Server name #[validate(length(min = 1, max = 32))] @@ -26,12 +26,25 @@ pub struct DataCreateServer { nsfw: Option, } +/// # Create Server Response +#[derive(Validate, Serialize, JsonSchema)] +pub struct CreateServerResponse { + /// Server object + server: Server, + /// Default channels + channels: Vec, +} + /// # Create Server /// /// Create a new server. #[openapi(tag = "Server Information")] #[post("/create", data = "")] -pub async fn req(db: &Db, user: User, info: Json) -> Result> { +pub async fn req( + db: &Db, + user: User, + info: Json, +) -> Result> { let info = info.into_inner(); info.validate() .map_err(|error| Error::FailedValidation { error })?; @@ -67,9 +80,11 @@ pub async fn req(db: &Db, user: User, info: Json) -> Result) -> Result