diff options
| author | seth <[email protected]> | 2023-12-15 02:15:56 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-15 16:41:13 -0500 |
| commit | 2ee6985ee62036afe8c1adc76849ffaf42a08bb8 (patch) | |
| tree | 6a3bd578c738c93d5f4dda9132f7ed25ca00c619 | |
| parent | cb81c0a8f4cc33d16ef6c45ae951ae0b926e936f (diff) | |
storage: remove guild settings from index on bot leave
| -rw-r--r-- | src/storage/mod.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/storage/mod.rs b/src/storage/mod.rs index 0947120..dc76db4 100644 --- a/src/storage/mod.rs +++ b/src/storage/mod.rs @@ -111,6 +111,20 @@ impl Storage { Ok(mems) } + async fn remove_from_index<'a>( + &self, + key: &str, + member: impl ToRedisArgs + Debug + Send + Sync + 'a, + ) -> Result<()> { + let index = format!("{key}:index"); + debug!("Removing member {member:#?} from index {index}"); + + let mut con = self.client.get_async_connection().await?; + con.srem(key, member).await?; + + Ok(()) + } + // guild settings pub async fn create_guild_settings(&self, settings: Settings) -> Result<()> { @@ -135,7 +149,9 @@ impl Storage { pub async fn delete_guild_settings(&self, guild_id: &GuildId) -> Result<()> { let key = format!("{SETTINGS_KEY}:{guild_id}"); + self.delete_key(&key).await?; + self.remove_from_index(&key, guild_id.as_u64()).await?; Ok(()) } |
