modular_api/services/refresh_token_service.py (26 lines of code) (raw):
from typing import Optional
from modular_api.helpers.log_helper import get_logger
from modular_api.models.refresh_token_model import RefreshToken
_LOG = get_logger(__name__)
class RefreshTokenService:
@staticmethod
def create_and_save(
username: str,
version: str,
) -> RefreshToken:
_LOG.info(f"Creating and saving refresh token for user '{username}'")
refresh_token = RefreshToken(username=username, version=version)
refresh_token.save()
return refresh_token
@staticmethod
def get_refresh_token(username: str) -> Optional[RefreshToken]:
_LOG.info(f"Retrieving refresh token for user '{username}'")
try:
return RefreshToken.get_nullable(hash_key=username)
except RefreshToken.DoesNotExist:
_LOG.warning(f"Refresh token for user '{username}' does not exist")
return None
@staticmethod
def delete_refresh_token(refresh_token: RefreshToken) -> None:
_LOG.info(f"Deleting refresh token for user '{refresh_token.username}'")
refresh_token.delete()