o
    dai	                     @  sl   d dl mZ d dlmZmZmZmZ d dlmZ d#ddZ	d$ddZ
d%ddZd%ddZddd&d!d"ZdS )'    )annotations)AnyDictListTuple	urlencodeclientr   methodstrparams_listList[Tuple[str, str]]returnc                 C  sH   t |}|pd }|dkr| jddd ||ddidS | jd|||dS )NGETPOST zContent-Typez!application/x-www-form-urlencoded)r
   paramsdata
var_stringheaders)r
   r   r   )r   upperrequest)r	   r
   r   r   method_u r   T/var/www/html/flask_server/apps/aroflo_connector_app/zones/timesheets/_join_utils.pyr      s   	r   respDict[str, Any]c                 C  s   | |t |ddS )N)r   r   )r   metar   )r   r   r   r   r   raw_wrap   s   r   r   
str | Nonec                 C  sp   |  dd }|d u r|  dd }|d u s|dkrd S zt|}W n ty+   tdw |dkr4tdt|S )NpageSizepagesizer   zpageSize debe ser un entero.r   zpageSize debe ser > 0.)getint	Exception
ValueErrorr   )r   vivr   r   r   coerce_page_size    s   r(   c                 C  s   |  d}|d u rd S t| }|sd S d|vrtd|dd\}}| }|  }|s5td|dvr=td| d| S )Norder|z4order debe tener formato 'campo|asc' o 'campo|desc'.   u&   order: el campo no puede estar vacío.)ascdescu-   order: la dirección debe ser 'asc' o 'desc'.)r"   r   stripr%   splitlower)r   r&   field	directionr   r   r   coerce_order3   s    
r3   N)r)   zonewheres	List[str]joinpager#   r    r)   c                 C  sn   d| fg}|D ]	}| d|f q|r| d|f |r#| d|f |r,| d|f | dt|f |S )Nr4   wherer7   r)   r    r8   )appendr   )r4   r5   r7   r8   r    r)   r   wr   r   r   build_list_paramsK   s   
	r<   )r	   r   r
   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r4   r   r5   r6   r7   r   r8   r#   r    r   r)   r   r   r   )
__future__r   typingr   r   r   r   urllib.parser   r   r   r(   r3   r<   r   r   r   r   <module>   s   



