"""Module that saves info about uploaded assets into direct_delivery db.""" from oto import response from assets.constants import error from assets.constants import asset_legacy from assets.models.legacy import asset_type from assets.models.legacy import asset_received_destination_details from assets.models.legacy import asset_received_queue def create_direct_delivery_items( asset_name, import_asset_id, uploaded_asset_filename, upc, track_unique_id, destination_name, job_type=asset_legacy.IMPORT_TYPE_UPLOAD ): """Save info about new asset into direct_delivery database. Args: asset_name (str): Asset type import_asset_id (int): Import asset id uploaded_asset_filename (str): Path for uploaded asset upc (int): UPC track_unique_id (int): Track unique id destination_name (str): Destination name job_type (str): Job type (e.g. "upload", "copy", "replace") Returns: response.Response: Response with success or error message """ asset_type_response = asset_type.get_asset_type_by_name(asset_name) if not asset_type_response: return asset_type_response asset_type_body = asset_type_response.message asset_type_id = asset_type_body['id'] asset_received_queue_response = ( asset_received_queue.create_asset_received_queue( asset_type_id=asset_type_id, priority=1, import_asset_id=import_asset_id, uploaded_asset_filename=uploaded_asset_filename, job_type=job_type)) if not asset_received_queue_response: return asset_received_queue_response asset_received_queue_body = asset_received_queue_response.message asset_received_queue_id = asset_received_queue_body['id'] asset_received_detail_response = ( asset_received_destination_details.create_destination_detail( asset_received_queue_id=asset_received_queue_id, upc=upc, track_id=track_unique_id, name=destination_name)) if not asset_received_detail_response: return asset_received_detail_response return response.Response(error.SUCCESS_CODE)