"""ows-assets connector.""" import json from functools import partial import config from owsrequest import request as owsrequest import src.exceptions class OWSAssetsConnector: """ows-assets connector.""" def __init__(self): """Initialize ows-assets connector.""" self.request = partial( owsrequest.process, application=config.SERVICE_NAME, environment=config.ENVIRONMENT, service_name='ows-assets' ) def get_mezzanine_tif_s3_location(self, product_id): """Get mezzanine tif s3 location. Args: product_id (str): product id Returns: (tuple): 0 (str): bucket containing mezzanine tif 1 (str): location of mezzanine tif in bucket """ response = self.request( method='GET', path=f'/v2/assets/{product_id}/asset_type/tif', ) response.raise_for_status() assets = response.json()['assets'] if len(assets) != 1: raise src.exceptions.NotExactlyOneMezzanineTifAsset( f'Expected exactly one asset, got {len(assets)}: ' f'{json.dumps(assets)}' ) mezzanine_tif = assets[0] return (mezzanine_tif['bucket'], mezzanine_tif['filename'])