import os import boto3 SERVICE_NAME = "lambda-collaborator-payoneer-status-sync" PROD_ENVIRONMENT = "prod" QA_ENVIRONMENT = "qa" ENVIRONMENT = os.environ.get("ENVIRONMENT", "dev") DB_COLLABORATORS_HOST = os.environ.get("DB_COLLABORATORS_HOST") DB_COLLABORATORS_DATABASE = "ows_collaborator" DB_COLLABORATORS_USERNAME = os.environ.get("DB_COLLABORATORS_USERNAME") PAYONEER_API_URL = os.environ.get("PAYONEER_API_URL", "https://api.payoneer.com") PAYONEER_AUTH_TOKEN = os.environ.get("PAYONEER_AUTH_TOKEN") PAYONEER_AUTH_TOKEN_SECRET_ID = os.environ.get("PAYONEER_AUTH_TOKEN_SECRET_ID") def _get_remote_secret(secret_id: str) -> str: return boto3.client("secretsmanager").get_secret_value(SecretId=secret_id)["SecretString"] def _get_service_secret(secret_name: str) -> str | None: if ENVIRONMENT not in {QA_ENVIRONMENT, PROD_ENVIRONMENT}: return None secret_id = f"{ENVIRONMENT}/{SERVICE_NAME}/{secret_name}" return _get_remote_secret(secret_id) DB_COLLABORATORS_PASSWORD = os.environ.get( "DB_COLLABORATORS_PASSWORD", _get_service_secret("DB_COLLABORATORS_PASSWORD") ) def get_payoneer_auth_token() -> str: if PAYONEER_AUTH_TOKEN: return PAYONEER_AUTH_TOKEN if PAYONEER_AUTH_TOKEN_SECRET_ID: return _get_remote_secret(PAYONEER_AUTH_TOKEN_SECRET_ID) raise ValueError("PAYONEER_AUTH_TOKEN or PAYONEER_AUTH_TOKEN_SECRET_ID must be provided")