o
    e                     @   sL   d dl mZ d dlT ddlmZmZmZ G dd deZG dd deZd	S )
    )to_param_dict)*   )ListResponseObjectPlivoResourcePlivoResourceInterfacec                   @   s@   e Zd Zd ZdZ													dddZdd ZdS )AddressidNc                 C   s*   | j j| j|||||||||	|
|||S N)client	addressesupdater	   )self
salutation
first_name	last_namecountry_isoaddress_line1address_line2cityregionpostal_codealiasfile_to_uploadauto_correct_addresscallback_url r   L/var/www/html/venv/lib/python3.10/site-packages/plivo/resources/addresses.pyr      s
   zAddress.updatec                 C   s   | j j| jS r
   )r   r   deleter	   )r   r   r   r   r      s   zAddress.deleteNNNNNNNNNNNNN)__name__
__module____qualname___name_identifier_stringr   r   r   r   r   r   r      s$    
r   c                   @   s   e Zd ZeZed)i deejgde	eeje
dgdeejgdeejgdeejgdeejgdeejgd	eejgd
eejgde	eeje
dgdeeejgdeeejgdeeegdeeejgdeeejgdeeejg							d*ddZeeejge	eeje
dgeejgeejgeeejgeeejgeeejgeeejgeeejgeeejgeeejgeeejgeeegd													d+ddZeeejgddd Zeeeejgeeejgeeejgee	eeje
dgee	eeje
dgee	eej edd dgee	eej ed d d!gd"						#	$d,d%d&Zeeejgdd'd( ZdS )-	Addressesr   r   )MrMsr   r   r   r   r   r   r   address_proof_type)national_idpassportbusiness_idNIFNIEDNIothersr   r   r   fiscal_identification_codestreet_codemunicipal_codeNc                 C   s   |dkr
|s
t d|dkrt||st d|rJ| dd  }|dvr,t dd	d	d
dd}dd l}d||jd t|d|| fi}nddi}t| j	t
 }| jjdd||dS )NESzFThe parameter fiscal_identification_code is required for Spain numbersDKzNThe parameters street_code and municipal_code are required for Denmark numbers.jpgjpegpngpdfMFile format of the file to be uploaded should be one of JPG, JPEG, PNG or PDF
image/jpeg	image/pngapplication/pdfr9   r8   r:   r;   r   filerb POSTVerificationr   files)ValidationErrorallstripsplitlowerossepopenr   createlocalsr   request)r   r   r   r   r   r   r   r   r   r   r(   r   r   r   r0   r1   r2   r   file_extensioncontent_typesrN   rH   data_to_sendr   r   r   rQ   &   s>   (zAddresses.create)
address_idr   r   r   r   r   r   r   r   r   r   r   r   c                 C   s   |r3|  dd  }|dvrtdddddd}d	d l}d
||jd t|d|| fi}nd
di}t| jt	 }| j
jddd|f||dS )Nr5   r6   r7   r<   r=   r>   r?   r@   r   rA   rB   rC   rD   rF   r   rG   )rK   rL   rM   rI   rN   rO   rP   r   rQ   rR   r   rS   )r   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   rU   rN   rH   rV   r   r   r   r   r   s2   
zAddresses.update)rW   c                 C   s   | j jddd|ftdS )NGETrF   r   )response_type)r   rS   r   r   rW   r   r   r   get   s   
zAddresses.get)pendingacceptedrejectedc                 C   s   d|   k o	dkS   S )Nr      r   )limitr   r   r   <lambda>   s    zAddresses.<lambda>z0 < limit <= 20c                 C   s   d| kS )Nr   r   )offsetr   r   r   ra      s    z0 <= offset)r   customer_namer   verification_statusvalidation_statusr`   rb   r_   r   c                 C   s    | j jddt| jt ttdS )NrX   rE   )rY   objects_type)r   rS   r   listrR   r   r   )r   r   rc   r   rd   re   r`   rb   r   r   r   rg      s   $zAddresses.listc                 C   s   | j ddd|fS )NDELETErF   r   )r   rS   rZ   r   r   r   r      s   zAddresses.deleter   )NNNNNNNr   )NNNNNr_   r   )r    r!   r"   r   _resource_typevalidate_argsof_typesix	text_typeall_ofis_inoptionalof_type_exactboolrQ   r   r[   integer_typescheckrg   r   r   r   r   r   r%   #   s    	!6


,
r%   N)	plivo.utilsr   plivo.utils.validatorsbaser   r   r   r   r%   r   r   r   r   <module>   s
   