"""Reusable methods to call PDE services.""" from typing import Any from owsclient import M2MTokenManager, OwsClient from secrets_manager.lambda_ext import LambdaSecretsManager from config import APPLICATION_NAME, ENVIRONMENT from src.connectors.exceptions import OwsPayeeException secrets_manager = LambdaSecretsManager( environment=ENVIRONMENT, service_name=APPLICATION_NAME, ) m2m_token_manager = M2MTokenManager( secrets_manager=secrets_manager, environment=ENVIRONMENT, service_name=APPLICATION_NAME, ) ows_client = OwsClient( environment=ENVIRONMENT, service_name=APPLICATION_NAME, m2m_token_manager=m2m_token_manager, ) def request( service: str, method: str, path: str, body: Any = None, **options: Any ) -> Any: """Make OWS request.""" response = ows_client.request(service, method, path, json=body, **options) if response.status_code >= 400: raise OwsPayeeException(f'ERROR in {method} {path}') return response