o
    B_ie                     @  st   d dl mZ d dlmZ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Zd&dd Zd!S )'    )annotations)AnyDictListTupleOptional	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 )	u   
    Copia del estándar (tasks/users):
    - Construye var_string con urlencode(params_list)
    - GET: querystring usando params=list[tuple]
    - POST: body application/x-www-form-urlencoded (no aplica en esta zona, pero se deja estándar)
    GETPOST Nz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   Z/var/www/html/flask_server/apps/aroflo_connector_app/zones/permissiongroups/_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   zonepageintc                 C  s(   |dk rt dd| fdtt|fgS )zr
    PermissionGroups doc: solo zone + page.
    No se documenta where/order/join/pageSize => NO se incluyen.
       zpage debe ser >= 1.r    r!   )
ValueErrorr   r"   )r    r!   r   r   r   build_list_params)   s
   r%   bridgeresultNonec                 C  sv   z0t |ts	W dS |d}t |tsW dS |d}t |tr+|r.| d| W dS W dS W dS  ty:   Y dS w )z|
    Si el result trae zoneresponse.permissiongroups, guarda la lista para referencias tipo:
      'permissiongroup #2'
    Nzoneresponsepermissiongroups!permissiongroups.permissiongroups)
isinstancedictgetlistset_list	Exception)r&   r'   zritemsr   r   r   $remember_permissiongroups_if_present:   s   



r4   c                 C  s   t | | dS )u;   
    Alias explícito (por simetría con otras zonas).
    N)r4   )r&   r'   r   r   r   %remember_permissiongroups_from_resultL   s   r5   idxOptional[Dict[str, Any]]c                 C  sx   z1|  dpg }t|tsW dS t|d }|dk s |t|kr#W dS || }t|tr/|W S dW S  ty;   Y dS w )z
    idx humano 1-based.
    r+   Nr#   r   )get_listr,   r/   r"   lenr-   r1   )r&   r6   r3   iitemr   r   r   get_permissiongroup_by_indexS   s   
r<   N)r
   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r    r   r!   r"   r   r   )r&   r   r'   r   r   r(   )r&   r   r6   r"   r   r7   )
__future__r   typingr   r   r   r   r   urllib.parser	   r   r   r%   r4   r5   r<   r   r   r   r   <module>   s   





