from fansifter_common import context from fansifter_common.adapters.aws.secretsmanager import SecretsManager from fansifter_common.constants import PROD_ENVIRONMENT, QA_ENVIRONMENT from fansifter_common.m2m_token import M2MTokenManager from fansifter_common.utils.functional import lazy_proxy from owsclient import OwsClient from app.config import settings m2m_token_manager = lazy_proxy( lambda: M2MTokenManager( secrets_manager=SecretsManager(region_name=settings.aws_region_name), secret_name_key=settings.m2m_token_secret_name, secret_expire_name_key=settings.m2m_token_expiration_secret_name, ) ) ows_client = lazy_proxy( lambda: OwsClient( environment=settings.environment, service_name=settings.service_name, m2m_token_manager=m2m_token_manager if settings.environment in [QA_ENVIRONMENT, PROD_ENVIRONMENT] else None, correlation_id_getter=context.get_correlation_id, request_context_getter=context.get_request_context, ) ) def create_fan_connection(*, email: str, dsp_client_name: str, token: str) -> None: response = ows_client.post( "ows-resonance-engine", "/fandata/connections", json={ "dsp_client_name": dsp_client_name, "email": email, "token": token, }, ) response.raise_for_status()