o
    Q?h0                  
   @   sx   d dl Z d dlmZ d dlmZmZmZmZmZ de	fddZ
de	deded	ed
e	f
ddZdde	dedefddZdS )    N)	API_Error)convertCarrierconvertRate	deEmojifygetShipmentPlatformCredssaveShipmententerpriseIdc              
   C   s   t | d}g }|r?|ddkr|S z|dt_tj }dd |D }W |S  ty> } zt| W Y d }~|S d }~ww |S )NEASYPOSTenabledFapiKeyc              	   S   s0   g | ]}t |d d|d|dddqS )idr	   readabledescriptionEasyPost)r   
platformIdnamer   platformName)r   get).0carrier r   Q/var/www/html/riverr-enterprise-integrations-main/functions/Shipments/EasyPost.py
<listcomp>   s    
zgetCarriers.<locals>.<listcomp>)r   r   easypostapi_keyCarrierAccountall	Exceptionprint)r   credscarrierscarriersAccountser   r   r   getCarriers	   s"   


r#   fromAddressorderparcel	carrierIdc           
      C   s  t | d}g }|rz|d}|dt_t|d|d|d|d|d|d	|d
|dd}t|d|d|d|d|d|d	|d
|dr`|dn|dddd
}t|d|d|d|dd}tjj|d|||tdd|gdtjjtjjdd|d|dr|dnd|d
ddgddd d d!d"| d#krd$nd d%d&	d'}|d(}|st	d)d*d+d, |D W S  t
y }	 z
t|	 t	t|	d }	~	ww g S )-Nr	   shippingAddressr   r   address1address2statecityzipcountryphone)r   street1street2r+   r,   r-   r.   r/   F)
r   r0   r1   r,   r+   r-   r.   r/   verifyverify_strictlengthwidthheightweight)r4   r5   r6   r7   r   4x6)
label_size0Clothing1
grandTotal   610910)r   quantityr7   valueorigin_countryhs_tariff_numberzNOEEI 30.37(a)merchandisenonereturntrue60D7GFDlMFFd6IsK1e58zAdam Arizaga )	customs_itemseel_pfccontents_typerestriction_typerestriction_commentsnon_delivery_optioncustoms_certifycustoms_signercontents_explanation)	reference
to_addressfrom_addressr&   optionscarrier_accountsaddress_validation_levelcustoms_inforateszNo rates available  c                 S   sX   g | ](}t |d |d|d|d|d|d|ddd|dd	
qS )
r   servicecarrier_account_idr   ratedelivery_daysshipment_idr	   r   )
r   r   r'   carrierNamecostdeliveryDays
shipmentIdr   r   	serviceId)r   r   )r   r^   r   r   r   r   ^   s    
zgetRates.<locals>.<listcomp>)r   r   r   r   dictShipmentcreateCustomsInfoCustomsItemr   r   r   str)
r   r$   r%   r&   r'   r   rZ   	toAddressshipmentr"   r   r   r   getRates   s   




rn   Fuidr^   c              
   C   sl  | d}t|d}z| dt_tj| d}|j|d}| }td$i d| d|dddd	d
| dd| dd| di  dd| d dd| dd| di  dd| di  dd| dd| di  ddd| di  dd| di  d d!| dd"| d"g }|W S  t	y } zt
t|d#d }~ww )%Nr   r	   r   rd   )r^   ro   r   r   r   orderIdr   platformOrderIdimagepostage_label	label_urlra   selected_rater   platformShipmentIdpdflabel_pdf_urlrb   r^   trackingCodetracking_codecurrencyUSDcarrierServicer\   trackingUrltracker
public_urluserUidroutedOrderIdsr[   r   )r   r   r   r   rg   retrievebuyto_dictr   r   r   rk   )ro   r%   r^   	insurancer   r   rm   r"   r   r   r   createShipmento   s^   




	


r   )F)r   functions.Responser   functions.Shipments.Convertr   r   r   r   r   rk   r#   rf   rn   r   r   r   r   r   <module>   s    R