diff options
| author | seth <[email protected]> | 2023-12-05 05:17:49 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-15 16:41:13 -0500 |
| commit | 815cb0df3b3e3f9dd2078b00f85754da87b1d55e (patch) | |
| tree | 85099483f8ebb0586bc097b65f6c5a2b5997150e /src/handlers/event/guild.rs | |
| parent | 0ca61ddff6ec7404f0aeabc1c8c785bbc8db7fd5 (diff) | |
refactor: centralize storage handlers
Diffstat (limited to 'src/handlers/event/guild.rs')
| -rw-r--r-- | src/handlers/event/guild.rs | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/handlers/event/guild.rs b/src/handlers/event/guild.rs index b7a4028..3473276 100644 --- a/src/handlers/event/guild.rs +++ b/src/handlers/event/guild.rs @@ -2,25 +2,33 @@ use color_eyre::eyre::Result; use log::*; use poise::serenity_prelude::{Guild, UnavailableGuild}; -use crate::{Data, Settings}; +use crate::{storage, Data}; +use storage::settings::Settings; +use storage::Storage; -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); +pub async fn handle_create(guild: &Guild, _is_new: &bool, data: &Data) -> Result<()> { + let storage = &data.storage; + let key = Storage::format_settings_key(guild.id); + + if storage.key_exists(&key).await? { + debug!("Not recreating settings key for {}", guild.id); return Ok(()); } - info!("Creating new Redis key for {}", guild.id); - Settings::new_redis(&data.redis, &guild.id).await?; + let settings = Settings { + guild_id: guild.id, + optional_commands_enabled: false, + ..Default::default() + }; + + warn!("Creating new settings key {key}:\n{settings:#?}"); + storage.create_settings_key(settings).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?; - + let key = Storage::format_settings_key(guild.id); + data.storage.delete_key(&key).await?; Ok(()) } |
