"""Connectors.""" from functools import cache from content_utils.connectors import graphql from content_utils.connectors import opensearch from owsclient import M2MTokenManager from secrets_manager.lambda_ext import LambdaSecretsManager from src import config @cache def get_os_connector(): """Get OpenSearch connector.""" os_opts = {} if config.OPENSEARCH_PORT: os_opts.update(port=int(config.OPENSEARCH_PORT)) if config.OPENSEARCH_INDEX_ALIAS: os_opts.update(alias_name=config.OPENSEARCH_INDEX_ALIAS) return opensearch.LambdaOpensearchConnector( config.OPENSEARCH_ENDPOINT, config.app_logger, **os_opts, ) # Setup M2M Token Manager # Set the environment to QA for testing and dev for development m2m_token_manager = M2MTokenManager( environment=config.ENVIRONMENT, service_name=config.APPLICATION_NAME, secrets_manager=LambdaSecretsManager( environment=config.ENVIRONMENT, service_name=config.APPLICATION_NAME ) ) @cache def get_graphql_connector(): """Get GraphQL connector.""" return graphql.LambdaGraphQLConnector( graphql_service_name=config.GRAPHQL_SERVICE_NAME, application_name=config.APPLICATION_NAME, logger=config.app_logger, environment=config.ENVIRONMENT, m2m_token_manager=m2m_token_manager, raise_on_error=True )