remove mod_role and fix some weird type errors?
This commit is contained in:
parent
eab02cd2c2
commit
95089e8a59
@ -55,8 +55,7 @@ pub async fn submit(
|
||||
|
||||
// Send a messasge to the mod-logs channel with a ping that a new vouch has been submitted
|
||||
let log_msg = format!(
|
||||
"{} {}\n:notepad_spiral: A new vouch has been submitted for {} by {}, please either approve or deny this vouch.",
|
||||
serenity::model::id::RoleId::new(ctx.data().config.roles.mod_role).mention(),
|
||||
"{}\n:notepad_spiral: A new vouch has been submitted for {} by {}, please either approve or deny this vouch.",
|
||||
serenity::model::id::RoleId::new(ctx.data().config.roles.admin).mention(),
|
||||
user.clone().mention(),
|
||||
ctx.author().mention()
|
||||
@ -70,10 +69,7 @@ pub async fn submit(
|
||||
.send_message(
|
||||
ctx.serenity_context(),
|
||||
CreateMessage::new().content(log_msg).allowed_mentions(
|
||||
CreateAllowedMentions::new().roles(vec![
|
||||
ctx.data().config.roles.mod_role,
|
||||
ctx.data().config.roles.admin,
|
||||
]),
|
||||
CreateAllowedMentions::new().roles(vec![ctx.data().config.roles.admin]),
|
||||
),
|
||||
)
|
||||
.await?;
|
||||
@ -98,10 +94,11 @@ pub async fn approve(
|
||||
match author_user {
|
||||
Some(author_user) => {
|
||||
// Check if the author is an admin
|
||||
if !author_user.roles.iter().any(|role_id| {
|
||||
*role_id == ctx.data().config.roles.admin
|
||||
|| *role_id == ctx.data().config.roles.mod_role
|
||||
}) {
|
||||
if !author_user
|
||||
.roles
|
||||
.iter()
|
||||
.any(|role_id| *role_id == ctx.data().config.roles.admin)
|
||||
{
|
||||
ctx.say(":x: You must be an admin to approve vouches!")
|
||||
.await?;
|
||||
return Ok(());
|
||||
@ -207,10 +204,11 @@ pub async fn deny(
|
||||
match author_user {
|
||||
Some(author_user) => {
|
||||
// Check if the author is an admin
|
||||
if !author_user.roles.iter().any(|role_id| {
|
||||
*role_id == ctx.data().config.roles.admin
|
||||
|| *role_id == ctx.data().config.roles.mod_role
|
||||
}) {
|
||||
if !author_user
|
||||
.roles
|
||||
.iter()
|
||||
.any(|role_id| *role_id == ctx.data().config.roles.admin)
|
||||
{
|
||||
ctx.say(":x: You must be an admin to deny vouches!").await?;
|
||||
return Ok(());
|
||||
}
|
||||
|
@ -34,26 +34,6 @@ impl DatabaseController {
|
||||
}
|
||||
}
|
||||
|
||||
async fn get_user_by_id(&self, id: u64) -> Result<Option<User>, sqlx::Error> {
|
||||
let user = sqlx::query!("SELECT * FROM users WHERE id = ?", id)
|
||||
.fetch_optional(&self.db)
|
||||
.await?;
|
||||
|
||||
match user {
|
||||
Some(user) => Ok(Some(User {
|
||||
id: user.id,
|
||||
discord_id: user
|
||||
.discord_id
|
||||
.parse::<u64>()
|
||||
.map_err(|_| sqlx::Error::Decode("Failed to parse discord_id".into()))?,
|
||||
actions_allowed: user.actions_allowed == Some(1),
|
||||
about: user.about,
|
||||
pronouns: user.pronouns,
|
||||
})),
|
||||
None => Ok(None),
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn create_user(&self, discord_id: u64) -> Result<User, sqlx::Error> {
|
||||
let user = sqlx::query!(
|
||||
"INSERT INTO users (discord_id) VALUES (?)",
|
||||
@ -85,14 +65,6 @@ impl DatabaseController {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn delete_user(&self, user: User) -> Result<(), sqlx::Error> {
|
||||
sqlx::query!("DELETE FROM users WHERE id = ?", user.id)
|
||||
.execute(&self.db)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn delete_user_by_discord_id(&self, discord_id: u64) -> Result<(), sqlx::Error> {
|
||||
sqlx::query!("DELETE FROM users WHERE discord_id = ?", discord_id)
|
||||
.execute(&self.db)
|
||||
@ -140,20 +112,20 @@ impl DatabaseController {
|
||||
}
|
||||
|
||||
pub async fn quote_get_random(&self) -> Result<Option<Quote>, sqlx::Error> {
|
||||
let quote = sqlx::query!("SELECT * FROM quotes ORDER BY RAND() LIMIT 1")
|
||||
.fetch_optional(&self.db)
|
||||
.await?;
|
||||
let quote =
|
||||
sqlx::query!("SELECT * FROM quotes ORDER BY RAND() LIMIT 1").fetch_one(&self.db);
|
||||
|
||||
match quote {
|
||||
Some(quote) => Ok(Some(Quote {
|
||||
quote_id: quote.quote_id,
|
||||
user_id: quote.user_id,
|
||||
username: quote.username,
|
||||
quote: quote.quote,
|
||||
added_by: quote.added_by,
|
||||
added_at: Some(quote.added_at),
|
||||
match quote.await {
|
||||
Ok(q) => Ok(Some(Quote {
|
||||
quote_id: q.quote_id,
|
||||
user_id: q.user_id,
|
||||
username: q.username,
|
||||
quote: q.quote,
|
||||
added_by: q.added_by,
|
||||
added_at: q.added_at,
|
||||
})),
|
||||
None => Ok(None),
|
||||
Err(sqlx::Error::RowNotFound) => Ok(None),
|
||||
Err(e) => Err(e),
|
||||
}
|
||||
}
|
||||
|
||||
@ -170,7 +142,7 @@ impl DatabaseController {
|
||||
username: q.username,
|
||||
quote: q.quote,
|
||||
added_by: q.added_by,
|
||||
added_at: Some(q.added_at),
|
||||
added_at: q.added_at,
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -108,7 +108,6 @@ struct Channels {
|
||||
#[derive(Deserialize, Serialize)]
|
||||
struct Roles {
|
||||
admin: u64,
|
||||
mod_role: u64,
|
||||
silly_role: u64,
|
||||
}
|
||||
|
||||
@ -144,7 +143,6 @@ async fn main() {
|
||||
},
|
||||
roles: Roles {
|
||||
admin: 0,
|
||||
mod_role: 0,
|
||||
silly_role: 0,
|
||||
},
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user