"""Model for ows-images.""" from owsrequest import request from activity_detector import base_config def get_release_image_url(upc, retries=5, logger=None): """Get release image url by upc. Args: upc (str): release upc. retries (int): the number of retries. logger (logger): logger object. Returns: str: image url. """ if retries < 0: raise Exception('Could not get image url') result = request.process( application='swf-activity-detector', environment=base_config.ENVIRONMENT, method='get', service_name='ows-images', path='/image/{upc}/location'.format(upc=upc)) body = result.json() if result.status_code == 200: url = body['path'] if base_config.ENVIRONMENT == base_config.ENVIRONMENT_QA: return url.replace('qaorch.com', 'theorchard.com') else: return url if result.status_code == 404: return None if logger: logger.error('Could not get image url: %s', body) return get_release_image_url(upc, retries - 1)