From 2ee6985ee62036afe8c1adc76849ffaf42a08bb8 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 15 Dec 2023 02:15:56 -0500 Subject: storage: remove guild settings from index on bot leave --- src/storage/mod.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/storage/mod.rs') 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(()) } -- cgit v1.2.3