diff options
author | Nathan Ringo <nathan@remexre.com> | 2024-01-16 00:57:41 -0600 |
---|---|---|
committer | Nathan Ringo <nathan@remexre.com> | 2024-01-16 00:57:41 -0600 |
commit | ed778ab2060c6131caf98231a97873d7ea490d5a (patch) | |
tree | bfa6ceca8fe2e209562c1e995c598d80be0e4501 /src/handlers | |
parent | 54f497163f57dacd8d621a2a3c89e1f06ac370d0 (diff) |
The start of database functionality.
Diffstat (limited to 'src/handlers')
-rw-r--r-- | src/handlers/x500_mapper.rs | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/handlers/x500_mapper.rs b/src/handlers/x500_mapper.rs index f477e97..1dd8955 100644 --- a/src/handlers/x500_mapper.rs +++ b/src/handlers/x500_mapper.rs @@ -1,22 +1,31 @@ use serenity::{ - all::{GuildMemberUpdateEvent, Member}, + all::{GuildMemberUpdateEvent, Member, UserId}, async_trait, client::{Context, EventHandler}, }; +use sqlx::{Database, Pool}; /// A handler that notices people with an X.500 in their nicknames that matches a student's, and /// records it in the database. -pub struct X500Mapper; +pub struct X500Mapper<DB: Database>(pub Pool<DB>); + +impl<DB: Database> X500Mapper<DB> { + async fn notice_member(&self, nick: &str, uid: UserId) { + dbg!((nick, uid)); + } +} #[async_trait] -impl EventHandler for X500Mapper { +impl<DB: Database> EventHandler for X500Mapper<DB> { async fn guild_member_update( &self, _ctx: Context, - old_if_available: Option<Member>, - new: Option<Member>, + _old_if_available: Option<Member>, + _new: Option<Member>, event: GuildMemberUpdateEvent, ) { - dbg!((old_if_available, new, event)); + if let Some(nick) = event.nick { + self.notice_member(&nick, event.user.id).await + } } } |