diff options
| author | seth <[email protected]> | 2023-12-02 07:00:24 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-15 16:41:13 -0500 |
| commit | 0025ad5ea8d412aacc3184d18063fd5ff3de0175 (patch) | |
| tree | 1d2b5ac5c04a092756180722358d929feeae50aa /src/handlers/event/guild.rs | |
| parent | ac32ec2a0ba37deb0ad82b4f2ee9c1e1b359cc88 (diff) | |
feat: add per guild configuration
Diffstat (limited to 'src/handlers/event/guild.rs')
| -rw-r--r-- | src/handlers/event/guild.rs | 26 |
1 files changed, 26 insertions, 0 deletions
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(()) +} |
