From 4e60d1d37ac14040ebb170743a672164018d3fc4 Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Mon, 12 Dec 2022 10:15:33 +0000 Subject: [PATCH] refactor(tokens-repo): move token getters to abstract class Not performance-optimal, but not in critical path either. 100 tokens max irl? --- .../tokens/abstract_tokens_repository.py | 15 +++++++++++++-- .../tokens/json_tokens_repository.py | 18 ------------------ 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/selfprivacy_api/repositories/tokens/abstract_tokens_repository.py b/selfprivacy_api/repositories/tokens/abstract_tokens_repository.py index 3cf6e1d..2840917 100644 --- a/selfprivacy_api/repositories/tokens/abstract_tokens_repository.py +++ b/selfprivacy_api/repositories/tokens/abstract_tokens_repository.py @@ -3,18 +3,29 @@ from datetime import datetime from typing import Optional from selfprivacy_api.models.tokens.token import Token +from selfprivacy_api.repositories.tokens.exceptions import TokenNotFound from selfprivacy_api.models.tokens.recovery_key import RecoveryKey from selfprivacy_api.models.tokens.new_device_key import NewDeviceKey class AbstractTokensRepository(ABC): - @abstractmethod def get_token_by_token_string(self, token_string: str) -> Optional[Token]: """Get the token by token""" + tokens = self.get_tokens() + for token in tokens: + if token.token == token_string: + return token + + raise TokenNotFound("Token not found!") - @abstractmethod def get_token_by_name(self, token_name: str) -> Optional[Token]: """Get the token by name""" + tokens = self.get_tokens() + for token in tokens: + if token.device_name == token_name: + return token + + raise TokenNotFound("Token not found!") @abstractmethod def get_tokens(self) -> list[Token]: diff --git a/selfprivacy_api/repositories/tokens/json_tokens_repository.py b/selfprivacy_api/repositories/tokens/json_tokens_repository.py index 30d8021..86e756a 100644 --- a/selfprivacy_api/repositories/tokens/json_tokens_repository.py +++ b/selfprivacy_api/repositories/tokens/json_tokens_repository.py @@ -23,24 +23,6 @@ DATETIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%f" class JsonTokensRepository(AbstractTokensRepository): - def get_token_by_token_string(self, token_string: str) -> Optional[Token]: - """Get the token by token""" - tokens = self.get_tokens() - for token in tokens: - if token.token == token_string: - return token - - raise TokenNotFound("Token not found!") - - def get_token_by_name(self, token_name: str) -> Optional[Token]: - """Get the token by name""" - tokens = self.get_tokens() - for token in tokens: - if token.device_name == token_name: - return token - - raise TokenNotFound("Token not found!") - def get_tokens(self) -> list[Token]: """Get the tokens""" tokens_list = []