chore: commit the things that are to be commited

This commit is contained in:
Paul Makles
2022-02-11 23:33:38 +00:00
parent 28db08ba88
commit 50d9f50c8f
9 changed files with 46 additions and 24 deletions

View File

@@ -2,7 +2,7 @@ use crate::util::{regex::RE_USERNAME, variables::MAX_BOT_COUNT};
use nanoid::nanoid; use nanoid::nanoid;
use revolt_quark::{ use revolt_quark::{
models::{Bot, User}, models::{Bot, User, user::BotInformation},
Db, Error, Result, Db, Error, Result,
}; };
@@ -31,13 +31,28 @@ pub async fn create_bot(db: &Db, user: User, info: Json<Data>) -> Result<Json<Bo
return Err(Error::ReachedMaximumBots); return Err(Error::ReachedMaximumBots);
} }
if db.is_username_taken(&info.name).await? {
return Err(Error::UsernameTaken);
}
let id = Ulid::new().to_string();
let bot_user = User {
id: id.clone(),
username: info.name,
bot: Some(BotInformation {
owner: user.id.clone()
}),
..Default::default()
};
let bot = Bot { let bot = Bot {
id: Ulid::new().to_string(), id,
owner: user.id, owner: user.id,
token: nanoid!(64), token: nanoid!(64),
..Default::default() ..Default::default()
}; };
db.insert_user(&bot_user).await?;
db.insert_bot(&bot).await?; db.insert_bot(&bot).await?;
Ok(Json(bot)) Ok(Json(bot))
} }

View File

@@ -49,9 +49,9 @@ pub async fn edit_bot(db: &Db, user: User, target: Ref, data: Json<Data>) -> Res
} }
if data.public.is_none() if data.public.is_none()
|| data.analytics.is_none() && data.analytics.is_none()
|| data.interactions_url.is_none() && data.interactions_url.is_none()
|| data.remove.is_none() && data.remove.is_none()
{ {
return Ok(Json(bot)); return Ok(Json(bot));
} }

View File

@@ -1,5 +1,5 @@
use revolt_quark::{ use revolt_quark::{
models::{Channel, User, Member, server_member::MemberCompositeKey}, models::{server_member::MemberCompositeKey, Channel, Member, User},
perms, ChannelPermission, Db, EmptyResponse, Error, Ref, Result, ServerPermission, perms, ChannelPermission, Db, EmptyResponse, Error, Ref, Result, ServerPermission,
}; };
@@ -46,14 +46,12 @@ pub async fn invite_bot(
let member = Member { let member = Member {
id: MemberCompositeKey { id: MemberCompositeKey {
server: server.id, server: server.id,
user: bot.id user: bot.id,
}, },
..Default::default() ..Default::default()
}; };
db.insert_member(&member) db.insert_member(&member).await.map(|_| EmptyResponse)
.await
.map(|_| EmptyResponse)
} }
Destination::Group { group } => { Destination::Group { group } => {
let channel = db.fetch_channel(&group).await?; let channel = db.fetch_channel(&group).await?;

View File

@@ -77,25 +77,25 @@ pub async fn req(db: &Db, target: Ref) -> Result<Json<InviteResponse>> {
_ => unreachable!(), _ => unreachable!(),
} }
} }
Invite::Group { channel, creator, .. } => { Invite::Group {
channel, creator, ..
} => {
let channel = db.fetch_channel(&channel).await?; let channel = db.fetch_channel(&channel).await?;
let user = db.fetch_user(&creator).await?; let user = db.fetch_user(&creator).await?;
match channel { match channel {
| Channel::Group { Channel::Group {
id, id,
name, name,
description, description,
.. ..
} => { } => InviteResponse::Group {
InviteResponse::Group { channel_id: id,
channel_id: id, channel_name: name,
channel_name: name, channel_description: description,
channel_description: description, user_name: user.username,
user_name: user.username, user_avatar: user.avatar,
user_avatar: user.avatar, },
}
}
_ => unreachable!(), _ => unreachable!(),
} }
} }

View File

@@ -1,5 +1,5 @@
use revolt_quark::{ use revolt_quark::{
models::{Invite, User, server_member::MemberCompositeKey, Member}, models::{server_member::MemberCompositeKey, Invite, Member, User},
Db, Error, Ref, Result, Db, Error, Ref, Result,
}; };
@@ -33,7 +33,7 @@ pub async fn req(db: &Db, user: User, target: Ref) -> Result<Value> {
let member = Member { let member = Member {
id: MemberCompositeKey { id: MemberCompositeKey {
server: server.id.clone(), server: server.id.clone(),
user: user.id.clone() user: user.id.clone(),
}, },
..Default::default() ..Default::default()
}; };

View File

@@ -54,6 +54,7 @@ pub async fn req(
}; };
// ! FIXME: calculate permission against member // ! FIXME: calculate permission against member
// ! FIXME: also check roles exist lol
// 1. Remove fields from object // 1. Remove fields from object
if let Some(fields) = &remove { if let Some(fields) = &remove {

View File

@@ -32,6 +32,12 @@ pub async fn req(
return Err(Error::NotFound); return Err(Error::NotFound);
} }
// ! FIXME: calculate permission against role
if !server.roles.contains_key(&role_id) {
return Err(Error::NotFound);
}
db.update_role_permission( db.update_role_permission(
&server.id, &server.id,
&role_id, &role_id,

View File

@@ -12,6 +12,8 @@ pub async fn req(db: &Db, user: User, target: Ref, role_id: String) -> Result<Em
return Err(Error::NotFound); return Err(Error::NotFound);
} }
// ! FIXME: check perms against role
db.delete_role(&server.id, &role_id) db.delete_role(&server.id, &role_id)
.await .await
.map(|_| EmptyResponse) .map(|_| EmptyResponse)

View File

@@ -1,7 +1,7 @@
use std::collections::HashMap; use std::collections::HashMap;
use revolt_quark::{ use revolt_quark::{
models::{Channel, Server, User, server_member::MemberCompositeKey, Member}, models::{server_member::MemberCompositeKey, Channel, Member, Server, User},
Db, Error, Result, DEFAULT_PERMISSION_CHANNEL_SERVER, DEFAULT_SERVER_PERMISSION, Db, Error, Result, DEFAULT_PERMISSION_CHANNEL_SERVER, DEFAULT_SERVER_PERMISSION,
}; };