summaryrefslogtreecommitdiff
path: root/src/storage
diff options
context:
space:
mode:
authorseth <[email protected]>2023-12-15 15:33:05 -0500
committerseth <[email protected]>2023-12-15 16:41:13 -0500
commit49a521d27d859c7b94f3944a44d29660118e5561 (patch)
tree06814aa070de4af69d907e1328b60b23ae0368ee /src/storage
parentc8fc58287aba8f5e2bfe2b4c84fb7d5aa8e2f8eb (diff)
storage: fixup settings index
Diffstat (limited to 'src/storage')
-rw-r--r--src/storage/mod.rs36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/storage/mod.rs b/src/storage/mod.rs
index a013500..a9886e2 100644
--- a/src/storage/mod.rs
+++ b/src/storage/mod.rs
@@ -87,37 +87,37 @@ impl Storage {
async fn add_to_index<'a>(
&self,
key: &str,
- member: impl ToRedisArgs + Send + Sync + 'a,
+ member: impl ToRedisArgs + Debug + Send + Sync + 'a,
) -> Result<()> {
- let index = format!("{key}:index");
- debug!("Appending index {index}");
+ let key = format!("{key}:index");
+ debug!("Adding member {member:#?} to index {key}");
let mut con = self.client.get_async_connection().await?;
- con.sadd(index, member).await?;
+ con.sadd(key, member).await?;
Ok(())
}
- async fn get_from_index<T>(&self, key: &str) -> Result<Vec<T>>
+ async fn get_index<T>(&self, key: &str) -> Result<Vec<T>>
where
T: FromRedisValue,
{
- let index = format!("{key}:index");
- debug!("Fetching index {index}");
+ let key = format!("{key}:index");
+ debug!("Getting index {key}");
let mut con = self.client.get_async_connection().await?;
- let mems = con.smembers(key).await?;
+ let members = con.smembers(key).await?;
- Ok(mems)
+ Ok(members)
}
- async fn remove_from_index<'a>(
+ async fn delete_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 key = format!("{key}:index");
+ debug!("Removing {member:#?} from index {key}");
let mut con = self.client.get_async_connection().await?;
con.srem(key, member).await?;
@@ -132,7 +132,7 @@ impl Storage {
self.set_key(&key, &settings).await?;
// adding to index since we need to look all of these up sometimes
- self.add_to_index(SETTINGS_KEY, settings.guild_id.as_u64())
+ self.add_to_index(SETTINGS_KEY, *settings.guild_id.as_u64())
.await?;
Ok(())
@@ -151,7 +151,8 @@ impl Storage {
let key = format!("{SETTINGS_KEY}:{guild_id}");
self.delete_key(&key).await?;
- self.remove_from_index(&key, guild_id.as_u64()).await?;
+ self.delete_from_index(SETTINGS_KEY, *guild_id.as_u64())
+ .await?;
Ok(())
}
@@ -164,10 +165,11 @@ impl Storage {
pub async fn get_all_guild_settings(&self) -> Result<Vec<Settings>> {
debug!("Fetching all guild settings");
- let guild_ids: Vec<u64> = self.get_from_index(SETTINGS_KEY).await?;
+ let found: Vec<u64> = self.get_index(SETTINGS_KEY).await?;
+
let mut guilds = vec![];
- for id in guild_ids {
- let settings = self.get_guild_settings(&GuildId::from(id)).await?;
+ for key in found {
+ let settings = self.get_guild_settings(&key.into()).await?;
guilds.push(settings);
}