"""Product model.""" from src.configs import config from src.connectors import request from src.constants import fields from src.constants import services def get_release_bulk(upcs): """Get display_upcs and release_ids by upcs from ows-product microservice. Args: upcs (list): list of UPC (int) Returns: dict: key (str) - field name, value - field values """ upcs_chunks = ( upcs[i:i + config.OWS_PRODUCT_UPC_BATCH_SIZE] for i in range( 0, len(upcs), config.OWS_PRODUCT_UPC_BATCH_SIZE)) result = {} for upcs_chunk in upcs_chunks: request_result = request.post( services.OWS_PRODUCT, '/bulk-upc', json={fields.PRODUCT_UPCS: upcs_chunk}) if not request_result: continue result_items = request_result[fields.RESULT_ITEMS] # result_items should be a list of items or an empty list[], # but let's handle a possible null/None value correctly. if result_items: for item in result_items: result[item[fields.UPC]] = { fields.DISPLAY_UPC: item[fields.DISPLAY_UPC], fields.PRODUCT_ID: item[fields.PRODUCT_ID] } return result