From 0025ad5ea8d412aacc3184d18063fd5ff3de0175 Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 2 Dec 2023 07:00:24 -0500 Subject: feat: add per guild configuration --- src/handlers/event/guild.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/handlers/event/guild.rs (limited to 'src/handlers/event/guild.rs') diff --git a/src/handlers/event/guild.rs b/src/handlers/event/guild.rs new file mode 100644 index 0000000..b7a4028 --- /dev/null +++ b/src/handlers/event/guild.rs @@ -0,0 +1,26 @@ +use color_eyre::eyre::Result; +use log::*; +use poise::serenity_prelude::{Guild, UnavailableGuild}; + +use crate::{Data, Settings}; + +pub async fn handle_create(guild: &Guild, is_new: &bool, data: &Data) -> Result<()> { + if !is_new && Settings::from_redis(&data.redis, &guild.id).await.is_ok() { + debug!("Not recreating Redis key for {}", guild.id); + return Ok(()); + } + + info!("Creating new Redis key for {}", guild.id); + Settings::new_redis(&data.redis, &guild.id).await?; + Ok(()) +} + +pub async fn handle_delete(guild: &UnavailableGuild, data: &Data) -> Result<()> { + let redis = &data.redis; + + info!("Deleting redis key for {}", guild.id); + let settings = Settings::from_redis(redis, &guild.id).await?; + settings.delete(redis).await?; + + Ok(()) +} -- cgit v1.2.3