"""ows-assets API client.""" import config import httpx from owsclient import OwsClient from owsclient import M2MTokenManager from secrets_manager.python_ext import PythonSecretsManager secrets_manager = PythonSecretsManager( application_context=False, environment=config.ENVIRONMENT, service_name=config.APPLICATION_NAME, ) client = OwsClient( config.ENVIRONMENT, config.APPLICATION_NAME, retries=config.OWS_RETRIES, timeout=httpx.Timeout(config.OWS_TIMEOUT), m2m_token_manager=( M2MTokenManager( secrets_manager=secrets_manager, environment=config.TOKEN_MANAGER_ENVIRONMENT, service_name=config.APPLICATION_NAME, ) ), ) def get_presigned_url(asset_final_id: int) -> str: """Get a presigned URL for an asset.""" response = client.get( "ows-assets", "/v2/asset/download_url", params={ "asset_final_id": asset_final_id, "expires_in": 300, }, ) response.raise_for_status() return response.json()["url"] def post_results(asset_final_id: int, block_text: str): """Post results to ows-assets API.""" response = client.post( "ows-assets", "/hive-text-recognition", json={"asset_final_id": asset_final_id, "block_text": block_text}, ) response.raise_for_status()