From 3cb7f295934f20e5bc7af1f0d40a4e185892159e Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Wed, 14 Dec 2022 17:03:22 +0000 Subject: [PATCH] refactor(tokens-repo): detach preparing a dict before a model cast --- .../tokens/redis_tokens_repository.py | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/selfprivacy_api/repositories/tokens/redis_tokens_repository.py b/selfprivacy_api/repositories/tokens/redis_tokens_repository.py index 86d5e51..accaacc 100644 --- a/selfprivacy_api/repositories/tokens/redis_tokens_repository.py +++ b/selfprivacy_api/repositories/tokens/redis_tokens_repository.py @@ -76,18 +76,22 @@ class RedisTokensRepository(AbstractTokensRepository): """Retrieves new device key that is already stored.""" raise NotImplementedError + @staticmethod + def _prepare_model_dict(d: dict): + for date in [ + "created_at", + ]: + if d[date] != "None": + d[date] = datetime.fromisoformat(d[date]) + for key in d.keys(): + if d[key] == "None": + d[key] = None + def _token_from_hash(self, redis_key: str) -> Token: r = self.connection if r.exists(redis_key): token_dict = r.hgetall(redis_key) - for date in [ - "created_at", - ]: - if token_dict[date] != "None": - token_dict[date] = datetime.fromisoformat(token_dict[date]) - for key in token_dict.keys(): - if token_dict[key] == "None": - token_dict[key] = None + RedisTokensRepository._prepare_model_dict(token_dict) return Token(**token_dict) return None