From 1ab9c09a5cb7b83d402e416ce8237b449edca5f6 Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Wed, 15 Nov 2017 19:15:12 +0200 Subject: [PATCH] Implemented RedisStorage.reset_all - for resetting all states in storage. --- aiogram/contrib/fsm_storage/redis.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/aiogram/contrib/fsm_storage/redis.py b/aiogram/contrib/fsm_storage/redis.py index 0104a65f..b4e350bc 100644 --- a/aiogram/contrib/fsm_storage/redis.py +++ b/aiogram/contrib/fsm_storage/redis.py @@ -153,3 +153,18 @@ class RedisStorage(BaseStorage): result.append((chat, user)) return result + + async def reset_all(self, full=True): + """ + Reset states in DB + + :param full: clean DB or clean only states + :return: + """ + conn = await self.redis + + if full: + conn.execute('FLUSHDB') + else: + keys = await conn.execute('KEYS', 'fsm:*') + conn.execute('DEL', *keys)