
    j                        d dl Z d dlmZ d dlZd dlmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZmZ dee         dee         dz  fd	Z	 	 	 ddededee         dedz  dedee         fdZ	 	 	 ddededee         dedz  dedefdZdS )    N)uuid4)DISPATCH_MOCK_MODEDISPATCH_TASK_URLlogger)get_valid_dispatch_token)build_dispatch_payloadget_dispatch_queue_detail)save_dispatch_recordupsert_dispatch_queue_item	queue_idsreturnc                 T   |d S t          |t                    r|g}n't          |t                    r|}nt          d          t	          d |D                       st          d          | r/t          |          t          |           k    rt          d          d |D             S )Nz,payload_items must be a JSON object or arrayc              3   @   K   | ]}t          |t                    V  d S )N)
isinstancedict.0items     H/home/longshao/multi-rider-rag/modules/dispatch/services/task_service.py	<genexpr>z(_coerce_payload_items.<locals>.<genexpr>   s,      ??$z$%%??????    z,payload_items must contain JSON objects onlyz0payload_items length must match queue_ids lengthc                 ,    g | ]}t          |          S  )r   r   s     r   
<listcomp>z)_coerce_payload_items.<locals>.<listcomp>   s    0004DJJ000r   )r   r   list
ValueErroralllen)r   payload_itemspayload_lists      r   _coerce_payload_itemsr!      s    t-&& I%	M4	(	( I$GHHH??,????? IGHHH MS&&#i..88KLLL00<0000r   minimal	owner_keyowner_ip	overridespayload_modec                     t          ||          }||S g }|D ]8}t          | ||          }	|                    t          |	||                     9|S )Nr%   r&   )r!   r	   appendr   )
r#   r$   r   r%   r   r&   custom_payloadspayloadsqueue_idr   s
             r   preview_dispatch_payloadsr-      sq     ,I}EEO"H f f(HhGG.tyWcdddeeeeOr   c                 "   |pi }t          ||          }g }g }t          |          D ]\\  }}	t          | ||	          }
|||         nt          |
||          }|                    |           |                    |
           ]t          |           \  }}|}t          t          j                              }t          rddd|d |D             d}nd|	                    dd	           d
| d}t          j        t          ||d          }	 |                                }n# t          $ r d|j        i}Y nw xY w|j        dk    r8t#          t%          |	                    d          p|j        pd                    t'          |	                    dd                    }t)          ||          D ]\  }
}t+          |
          }||d<   ||d<   ||d<   |rdnd|d<   |rdn8t%          |	                    d          p|	                    d          pd          |d<   t-          |           t/          t1                      j        |
	                    d          | ||d         |||d         |d	           |t5          |          |t          dS )Nr(   200Tzmock dispatch successc                 v    g | ]6}|                     d           dt                      j        dd         z   d7S )wxtidzmock-N   )r1   systemid)getr   hex)r   payloads     r   r   z(dispatch_queue_items.<locals>.<listcomp>Q   sS        "++g..GeggkRUSURUFV<VWW  r   )codesuccessmessage	timestampdatazapplication/json
token_typeBearer )zContent-TypeAuthorization   )headersjsontimeoutrawi  r9   zdispatch request failedr8   draft_payloaddispatch_response
updated_tsfaileddispatch_status errorMessage
last_errorid)	rM   r,   r#   r$   statusrequest_payloadresponse_payloaderror_message
created_ts)r8   countresponse	mock_mode)r!   	enumerater	   r   r)   r   inttimer   r4   requestspostr   rB   	Exceptiontextstatus_codeRuntimeErrorstrboolzipr   r   r
   r   r5   r   )r#   r$   r   r%   r   r&   r*   queue_itemsindexr,   r   r6   tokenauth_statusrO   nowrP   rA   rT   r8   updated_items                        r   dispatch_queue_itemsrh   1   sZ    RI+I}EEOMK$Y// ! !x(HhGG,;,G/%((Mc%N
 N
 N

 	W%%%4    1)<<E;#O
dikk

C s. ,  	
 	
 / +h G GQQ%QQ
 
 =	
 
 
	6'}} 	6 	6 	6 %x}5	63&&s#3#7#7	#B#B#phm#pWpqqrrr#''	48899G[-88 
 
gDzz(/_%,<()%(\"7>*L))H&'+2  &KRR<L<P<PQ_<`<`  =Jdtdxdx  zC  eD  eD  =J  HJ  9K  9K\""<000ggk HHTNN&$&'89#*$4!-l!;!
 
	
 	
 	
 	
 [!!$'	  s   D$ $D:9D:)NNr"   )rX   uuidr   rY   shared.config.configr   r   r   &modules.dispatch.services.auth_servicer   'modules.dispatch.services.queue_servicer   r	   'modules.dispatch.services.store_servicer
   r   r   r_   r   r!   r-   rh   r   r   r   <module>rn      s           N N N N N N N N N N K K K K K K e e e e e e e e       1T#Y 1$t*tBS 1 1 1 1( "!  Cy d{	  
$Z   , "!S SSS CyS d{	S S 
S S S S S Sr   