from aws_lambda_tools.logging.factory import LOGGING_FACTORY

from conio_sdk.common import exceptions
from conio_sdk.services.conio.user.user_service import UserService, AuthenticationData


class RefreshTokenVOServices:
    def __init__(self, user_service: UserService):
        self._user_service = user_service

    def refresh_token(self, refresh_token: str) -> AuthenticationData:
        if not refresh_token:
            LOGGING_FACTORY.security.warning('No such refresh token')
            raise exceptions.NotAuthenticatedException
        return self._user_service.refresh_session(refresh_token)
