Channels: Add role / default permission set routes.

Server: Add role create / delete route.
This commit is contained in:
Paul Makles
2021-06-30 12:56:18 +01:00
parent 51dc25c94c
commit 31c93b9954
12 changed files with 325 additions and 6 deletions

View File

@@ -15,6 +15,8 @@ pub struct Data {
description: Option<String>,
icon: Option<String>,
banner: Option<String>,
categories: Option<Vec<Category>>,
system_messages: Option<SystemMessageChannels>,
remove: Option<RemoveServerField>,
}
@@ -24,7 +26,7 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
data.validate()
.map_err(|error| Error::FailedValidation { error })?;
if data.name.is_none() && data.icon.is_none() && data.banner.is_none() && data.remove.is_none()
if data.name.is_none() && data.icon.is_none() && data.banner.is_none() && data.remove.is_none() && data.categories.is_none() && data.system_messages.is_none()
{
return Ok(());
}
@@ -95,6 +97,14 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
remove_banner = true;
}
if let Some(categories) = &data.categories {
set.insert("categories", to_document(&categories).map_err(|_| Error::DatabaseError { operation: "to_document", with: "categories" })?);
}
if let Some(system_messages) = &data.system_messages {
set.insert("system_messages", to_document(&system_messages).map_err(|_| Error::DatabaseError { operation: "to_document", with: "system_messages" })?);
}
let mut operations = doc! {};
if set.len() > 0 {
operations.insert("$set", &set);