o
    B_i|                     @  s\   d dl mZ d dlZd dlmZmZmZ d dlZddd	ZdddZ	dddZ
dddZdS )    )annotationsN)AnyDictListresultr   returnNonec                 C  s:   t | ttfrttj| ddd d S tt|  d S )N   F)indentensure_ascii)
isinstancedictlistclickechojsondumpsstr)r    r   R/var/www/html/flask_server/apps/aroflo_connector_app/zones/permissiongroups/cli.py_echo
   s   r   zone	List[str]c                 C  s   t | dg }tdd |D S )N
operationsc                 S  s   g | ]}|j qS r   )code).0or   r   r   
<listcomp>   s    z"_available_ops.<locals>.<listcomp>)getattrsorted)r   opsr   r   r   _available_ops   s   r!   op_coder   paramsDict[str, Any]c                 C  sl   t t| }||vr/td| d| j d td t| D ]
}td|  q td| j||dS )Nu   ❌ Operación 'z' no existe en zona 'z'.zOperaciones disponibles:z  - r	   )r#   )setr!   r   r   r   
SystemExitexecute)r   r"   r#   	availablecr   r   r   _run   s   
r*   rootclick.Groupc                   sT   | j  jddd }|dtjddtddtjd	dd
dd fdd}d S )N)namec                   S  s   dS )z4Operaciones de la zona permissiongroups (READ ONLY).Nr   r   r   r   r   permissiongroups_group"   s    z,register_cli.<locals>.permissiongroups_groupr   z--page   T)defaulttypeshow_defaultz--rawz&Devuelve respuesta cruda + meta debug.)is_flaghelppageintrawboolc                   s   t t d| |d d S )Nlist_permissiongroupsr5   r7   )r   r*   r:   r   r   r   list_cmd&   s   zregister_cli.<locals>.list_cmd)r5   r6   r7   r8   )groupr   commandr   optionr6   )r+   r   r.   r<   r   r;   r   register_cli!   s   
r@   )r   r   r   r   )r   r   r   r   )r   r   r"   r   r#   r$   r   r   )r+   r,   r   r   r   r   )
__future__r   r   typingr   r   r   r   r   r!   r*   r@   r   r   r   r   <module>   s   


