feat(api): also clear cache when leaving a guild

This commit is contained in:
sam 2024-10-24 21:10:54 +02:00
parent 5c57b75335
commit 439051999f
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
10 changed files with 53 additions and 0 deletions

View file

@ -33,6 +33,9 @@ public class RedisInviteCache(RedisService redisService) : IInviteCache
public async Task SetAsync(Snowflake guildId, IEnumerable<IInviteWithMetadata> invites) =>
await redisService.SetAsync(InvitesKey(guildId), invites.Select(RedisInvite.FromIInvite));
public async Task RemoveAsync(Snowflake guildId) =>
await redisService.GetDatabase().KeyDeleteAsync(InvitesKey(guildId));
private static string InvitesKey(Snowflake guildId) => $"guild-invites:{guildId}";
}

View file

@ -192,6 +192,11 @@ public class RedisMemberCache(
public async Task TryRemoveMemberNameAsync(Snowflake guildId, string username) =>
await redisService.GetDatabase().HashDeleteAsync(MemberNamesKey(guildId), username);
public async Task RemoveAllMembersAsync(Snowflake guildId) =>
await redisService
.GetDatabase()
.KeyDeleteAsync([GuildMembersKey(guildId), MemberNamesKey(guildId)]);
private const string GuildCacheKey = "cached-guilds";
private static string GuildMembersKey(Snowflake guildId) => $"guild-members:{guildId}";