
    |j
                    B    d dl mZ d dlmZ d dlZdddZ G d d      Zy)	    )annotations)AnyNc                n   |y t        |t        t        f      r6t        |      D ]'  \  }}|r| d| dn
t	        |      }t        | ||       ) y t        |t              r;|j                         D ]'  \  }}|r| d| dn
t	        |      }t        | ||       ) y |st        d      t	        |      | |<   y )N[]z"Cannot append scalar without a key)	
isinstancelisttuple	enumeratestr_append_paramsdictitems
ValueError)datavalueprefixindexitemnext_prefixkeynesteds           :/var/www/abs-group.kazgame-control.su/app/bitrix/client.pyr   r      s    }%$'$U+ 	4KE428VHAeWA.c%jK4{3	4 	% ;;= 	6KC06VHAcU!,CHK45	6 	=>>u:DL    c                  (    e Zd ZddZdddZdddZy)	BitrixClientc                D    || _         t        j                         | _        y N)webhook_urlrequestsSessionsession)selfr   s     r   __init__zBitrixClient.__init__   s    &'')r   Nc                h   i }t        ||xs i        | j                  j                  | j                   | |d      }|j	                          |j                         }|j                  d      r3t        d|j                  d       d|j                  d      xs d       |j                  d      S )	N<   r   timeouterrorBitrix error : error_descriptionunknownresult)r   r"   postr   raise_for_statusjsongetRuntimeError)r#   methodparamspayloadresponser   s         r   callzBitrixClient.call"   s    "$w"-<<$$ ) % 

 	!!#}}88G 12"TXX>Q5R5_V_4`a  xx!!r   c                ^   g }d}t        |xs i       }|i }t        |i |d|i       | j                  j                  | j                   | |d      }|j                          |j                         }|j                  d      r3t        d|j                  d       d|j                  d      xs d	       |j                  d
      }	t        |	t              r|	}
n(t        |	t               r|	j                  d      xs g }
ng }
|j                  |
       |j                  d      }||S )Nr   startr&   r'   r)   r*   r+   r,   r-   r.   r   next)r   r   r"   r/   r   r0   r1   r2   r3   r   r	   extend)r#   r4   r5   r   r:   base_paramsr6   r7   r   r.   chunks              r   	call_listzBitrixClient.call_list2   s5   6<R(&(G7$C{$CGU$CD||((##$VH- ) H
 %%'==?Dxx "#DHHW$5#6bBU9V9cZc8de  XXh'F&$'FD)

7+1rLLHHV$E1 4 r   )r   r   returnNoner   )r4   r   r5   dict[str, Any] | Noner@   r   )r4   r   r5   rB   r@   z	list[Any])__name__
__module____qualname__r$   r8   r?    r   r   r   r      s    *" r   r   ) )r   zdict[str, str]r   r   r   r   r@   rA   )
__future__r   typingr   r    r   r   rF   r   r   <module>rJ      s    "  *4 4r   