This commit is contained in:
23
backend/redis-scripts/purge-results.lua
Normal file
23
backend/redis-scripts/purge-results.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
local redis_call = redis.call
|
||||
local string_match = string.match
|
||||
|
||||
local user_id = ARGV[1]
|
||||
local leaderboards_namespace = ARGV[2]
|
||||
|
||||
local current_cursor = '0'
|
||||
local match_pattern = leaderboards_namespace .. '*'
|
||||
|
||||
repeat
|
||||
local result = redis_call('SCAN', current_cursor, 'MATCH', match_pattern)
|
||||
local next_cursor, matched_keys = result[1], result[2]
|
||||
|
||||
for _, key in ipairs(matched_keys) do
|
||||
if (string_match(key, 'results')) then
|
||||
redis_call('HDEL', key, user_id)
|
||||
elseif (string_match(key, 'scores')) then
|
||||
redis_call('ZREM', key, user_id)
|
||||
end
|
||||
end
|
||||
|
||||
current_cursor = next_cursor
|
||||
until (current_cursor == '0')
|
||||
Reference in New Issue
Block a user