"""Model for ows-product.""" import logging import requests import config import const from utils import string def get_release_info(release_id): """Get information about product from ows-product. Args: release_id (int): product id. Returns: dict: information about product. """ result = { 'release_name': '', 'release_status': '', 'upc': 0, 'vendor_id': 0, 'subaccount_id': 0, 'deletions': 'N' } if not release_id: return result url = const.SERVICE_URL.format( environment=config.ENVIRONMENT, service_name=const.OWS_PRODUCT_SERVICE_NAME, path=const.OWS_PRODUCT_ENDPOINT.format(release_id)) response = requests.get(url) if response.status_code not in (200, 404): logging.exception( 'Failed to get release information from ows-product.') raise Exception(const.OWS_PRODUCT_ERROR) if response.status_code == 200: info = response.json() result['release_name'] = string.cleanup_unicode(info['product_name']) result['release_status'] = info['status'] result['upc'] = info['upc'] result['vendor_id'] = info['vendor_id'] result['subaccount_id'] = info['subaccount_id'] result['deletions'] = info['deletions'] return result def get_product_document(product_id): """Get information about product from ows-product. Args: product_id (int): product id. Returns: dict: information about product. """ result = {} if not product_id: return result url = const.SERVICE_URL.format( environment=config.ENVIRONMENT, service_name=const.OWS_PRODUCT_SERVICE_NAME, path=const.OWS_PRODUCT_DOCUMENT_ENDPOINT.format(product_id)) response = requests.get(url) if response.status_code not in (200, 404): logging.exception( 'Failed to get product information from ows-product.') raise Exception(const.OWS_PRODUCT_ERROR) if response.status_code == 200: result = response.json() return result