"""Validation for a Product.""" from switchboard_consumer.constants.entity_type import PRODUCT from switchboard_consumer.constants.validation import ( CHILD_ENTITY_PRODUCT_INGEST, VALIDATION_CODE) from switchboard_consumer.formatters.errors import ( format_generic_error ) from switchboard_consumer.logic.validation.track.validate import validate_track from switchboard_consumer.utils.message import create_processing_result def validate_product(product_data, message): """Validate product.""" processing_results = [] for component in product_data.get('components', []): for side in component.get('sides', []): for product_track in side.get('productTracks', []): track = product_track.get('track', {}) processing_result = validate_track(track, message) if processing_result: processing_results.append(processing_result) if processing_results: processing_result = create_processing_result( message.ids, message, entity_type=PRODUCT, errors=[format_generic_error(CHILD_ENTITY_PRODUCT_INGEST, VALIDATION_CODE)]) processing_results.append(processing_result) return processing_results