use crate::common::{Context, Error}; use sqlx::{PgConnection, Row}; use poise::serenity_prelude::{RoleId, UserId, GuildId}; mod register; mod whois; mod color; mod name; mod disown; mod remove; #[poise::command( prefix_command, slash_command, subcommands( "register::register", "whois::whois", "color::color", "name::name", "disown::disown", "remove::remove", ) )] pub async fn role(_ctx: Context<'_>) -> Result<(), Error> { Ok(()) } pub async fn get_user_role(user: UserId, guild: GuildId, db: &mut PgConnection) -> Result, Error> { match sqlx::query("SELECT roleid FROM selfroles WHERE userid = $1 AND guildid = $2") .bind(user.get() as i64) .bind(guild.get() as i64) .fetch_one(db).await { Ok(row) => Ok(Some(RoleId::new(row.try_get::(0)? as u64))), Err(sqlx::Error::RowNotFound) => Ok(None), Err(e) => return Err(Box::new(e)), } }