mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git
synced 2025-03-11 17:13:49 +00:00
refactor(tokens-repo): move token getters to abstract class
Not performance-optimal, but not in critical path either. 100 tokens max irl?
This commit is contained in:
parent
ff264ec808
commit
4e60d1d37a
2 changed files with 13 additions and 20 deletions
selfprivacy_api/repositories/tokens
|
@ -3,18 +3,29 @@ from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from selfprivacy_api.models.tokens.token import Token
|
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.recovery_key import RecoveryKey
|
||||||
from selfprivacy_api.models.tokens.new_device_key import NewDeviceKey
|
from selfprivacy_api.models.tokens.new_device_key import NewDeviceKey
|
||||||
|
|
||||||
|
|
||||||
class AbstractTokensRepository(ABC):
|
class AbstractTokensRepository(ABC):
|
||||||
@abstractmethod
|
|
||||||
def get_token_by_token_string(self, token_string: str) -> Optional[Token]:
|
def get_token_by_token_string(self, token_string: str) -> Optional[Token]:
|
||||||
"""Get the token by 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]:
|
def get_token_by_name(self, token_name: str) -> Optional[Token]:
|
||||||
"""Get the token by name"""
|
"""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
|
@abstractmethod
|
||||||
def get_tokens(self) -> list[Token]:
|
def get_tokens(self) -> list[Token]:
|
||||||
|
|
|
@ -23,24 +23,6 @@ DATETIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%f"
|
||||||
|
|
||||||
|
|
||||||
class JsonTokensRepository(AbstractTokensRepository):
|
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]:
|
def get_tokens(self) -> list[Token]:
|
||||||
"""Get the tokens"""
|
"""Get the tokens"""
|
||||||
tokens_list = []
|
tokens_list = []
|
||||||
|
|
Loading…
Add table
Reference in a new issue