"""Meta Update Queue Logic CRUD operation.""" from oto import response from product_workflow.constants import error, field from product_workflow.models import meta_update_queue from product_workflow.models import ows_account from product_workflow.models import ows_product def create_meta_update_queue(product_id, data): """Create meta_update_queue record for the product. Args: product_id (int): Product id to create meta_update_queue. data (dict): Contains the meta_update_queue description. Return: response.Response: meta_update_queue data on successful update or error response. """ product_response = ows_product.get_product_by_id(product_id) if not product_response: return product_response product = product_response.message if not product: return response.create_error_response( code=error.ERROR_CODE_BAD_REQUEST, message=error.ERROR_MESSAGE_PRODUCT_NOT_FOUND.format(product_id)) if product.get('vendor_id'): account_response = ows_account.get_vendor(product.get('vendor_id')) if account_response != field.SIGNED: return response.create_error_response( code=error.ERROR_CODE_BAD_REQUEST, message=error.ERROR_MESSAGE_VENDOR_NOT_SIGNED) return meta_update_queue.create_meta_update_queue( product.get('upc'), data)