o
    aq×ec  ã                   @   s‚   d dl Z d dlmZmZmZ d dlmZ d dlmZ d dl	m
Z
 ddd„Zd	eeeeeef  f ddfd
d„Zdefdd„ZdS )é    N)ÚUnionÚDictÚList)ÚSlackRequestError)Ú
Attachment)ÚBlockÚreturnc                    s    dt tttf fdd„‰ |  dd ¡}|d ur+t|tƒr+‡ fdd„|D ƒ}|  d|i¡ |  dd ¡}|d urLt|tƒrN‡ fdd„|D ƒ}|  d|i¡ d S d S d S )	NÚobjc                 S   s(   t | tƒr	|  ¡ S t | tƒr|  ¡ S | S )N)Ú
isinstancer   Úto_dictr   )r	   © r   úY/var/www/html/humari/django-venv/lib/python3.10/site-packages/slack/web/internal_utils.pyr   
   s
   

z)_parse_web_class_objects.<locals>.to_dictÚblocksc                    ó   g | ]}ˆ |ƒ‘qS r   r   )Ú.0Úb©r   r   r   Ú
<listcomp>   ó    z,_parse_web_class_objects.<locals>.<listcomp>Úattachmentsc                    r   r   r   )r   Úar   r   r   r      r   )r   r   r   r   Úgetr
   ÚlistÚupdate)Úkwargsr   Údict_blocksr   Údict_attachmentsr   r   r   Ú_parse_web_class_objects	   s   þr   Úusersc                 C   sR   |d u rd S t |tƒr|  dt |¡i¡ d S t |tƒr%|  d|i¡ d S tdƒ‚)Nr   z0users must be either str or List[Dict[str, str]])r
   r   r   ÚjsonÚdumpsÚstrr   )r   r   r   r   r   Ú_update_call_participants   s   

r"   c                 C   s(   d| v od| d v o| d d dk}|S )z€Determine if the response contains 'next_cursor'
    and 'next_cursor' is not empty.

    Returns:
        A boolean value.
    Úresponse_metadataÚnext_cursorÚ r   )ÚdataÚpresentr   r   r   Ú_next_cursor_is_present(   s   
ÿýr(   )r   N)r   Útypingr   r   r   Úslack.errorsr   Úslack.web.classes.attachmentsr   Úslack.web.classes.blocksr   r   r!   r"   Úboolr(   r   r   r   r   Ú<module>   s    
&