from dataclasses import dataclass from app.adapters.auth0 import Auth0Client from app.adapters.aws.secrets_manager import SecretsManager @dataclass class RefreshM2MTokenHandler: auth0_client: Auth0Client secrets_manager: SecretsManager # Settings m2m_token_secret_name: str m2m_token_expiration_secret_name: str def handle(self) -> None: # Get the M2M JWT from Auth0 token = self.auth0_client.get_token() # Store the M2M JWT in the secrets manager self.secrets_manager.update_secret( secret_name=self.m2m_token_expiration_secret_name, secret_value=token.expires_at.isoformat(), ) self.secrets_manager.update_secret( secret_name=self.m2m_token_secret_name, secret_value=token.access_token, )