
    E0ja                         d dl Z ddlmZmZ ddlmZ  G d de          Z G d de          Z G d	 d
e          Z	 G d de          Z
 G d de          Z G d de          ZdS )    N   )CallbackHandlerCallbackMessage)http_post_jsonc                       e Zd ZdZdS )GraphMessagez/v1.0/graph/api/invokeN)__name__
__module____qualname__TOPIC     ]/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/dingtalk_stream/graph.pyr   r      s        $EEEr   r   c                   0    e Zd Zd Zed             Zd ZdS )RequestLinec                 0    d| _         d| _        i | _        d S )NGET/)methoduri
extensionsselfs    r   __init__zRequestLine.__init__   s    r   c                     t                      }|                                D ]+\  }}|dk    r||_        |dk    r||_        !||j        |<   ,|S Nr   r   )r   itemsr   r   r   clsdmsgnamevalues        r   	from_dictzRequestLine.from_dict   s`    mm7799 	- 	-KD%x"

',t$$
r   c                 |    | j                                         }| j        
| j        |d<   | j        
| j        |d<   |S r   )r   copyr   r   r   results     r   to_dictzRequestLine.to_dict   sA    %%'';"#{F88 HF5Mr   Nr	   r
   r   r   classmethodr$   r)   r   r   r   r   r   
   M          
 	 	 [	    r   r   c                   0    e Zd Zd Zed             Zd ZdS )
StatusLinec                 0    d| _         d| _        i | _        d S )N   OK)codereason_phraser   r   s    r   r   zStatusLine.__init__%   s    	!r   c                     t                      }|                                D ]+\  }}|dk    r||_        |dk    r||_        !||j        |<   ,|S Nr2   reasonPhrase)r   r   r2   r3   r   r   s        r   r$   zStatusLine.from_dict*   sb    mm7799 	- 	-KD%v~~ ''$)!!',t$$
r   c                 |    | j                                         }| j        
| j        |d<   | j        
| j        |d<   |S r5   )r   r&   r2   r3   r'   s     r   r)   zStatusLine.to_dict6   sC    %%''9 !YF6N)%)%7F>"r   Nr*   r   r   r   r.   r.   $   r,   r   r.   c                   0    e Zd Zd Zed             Zd ZdS )GraphRequestc                 V    d | _         t                      | _        i | _        i | _        d S N)bodyr   request_lineheadersr   r   s    r   r   zGraphRequest.__init__?   s'    	'MMr   c                     t                      }|                                D ]Q\  }}|dk    r||_        |dk    r||_        !|dk    r t                              |          |_        G||j        |<   R|S Nr<   r>   requestLine)r9   r   r<   r>   r   r$   r=   r   r   s        r   r$   zGraphRequest.from_dictE   s    nn7799 	- 	-KD%v~~ ""#&&#.#8#8#?#?  ',t$$
r   c                     | j                                         }| j        
| j        |d<   | j        
| j        |d<   | j        | j                                        |d<   |S r@   )r   r&   r<   r>   r=   r)   r'   s     r   r)   zGraphRequest.to_dictS   sc    %%''9 !YF6N<# $F9($($5$=$=$?$?F=!r   Nr*   r   r   r   r9   r9   >   M             [    r   r9   c                   0    e Zd Zd Zed             Zd ZdS )GraphResponsec                 V    d | _         i | _        t                      | _        i | _        d S r;   )r<   r>   r.   status_liner   r   s    r   r   zGraphResponse.__init__^   s'    	%<<r   c                     t                      }|                                D ]Q\  }}|dk    r||_        |dk    r||_        !|dk    r t                              |          |_        G||j        |<   R|S Nr<   r>   
statusLine)rE   r   r<   r>   r.   r$   rG   r   r   s        r   r$   zGraphResponse.from_dictd   s    oo7799 	- 	-KD%v~~ ""#%%","6"6u"="=',t$$
r   c                     | j                                         }| j        
| j        |d<   | j        
| j        |d<   | j        | j                                        |d<   |S rI   )r   r&   r<   r>   rG   r)   r'   s     r   r)   zGraphResponse.to_dictr   sc    %%''9 !YF6N<# $F9'#'#3#;#;#=#=F< r   Nr*   r   r   r   rE   rE   ]   rC   r   rE   c                   0     e Zd ZdZ fdZd ZddZ xZS )GraphHandlerz+d28e2ac5-fb34-4d93-94bc-cf5c580c2d4f.schemac                 V    t          t          |                                            d S r;   )superrM   r   )r   	__class__s    r   r   zGraphHandler.__init__   s%    lD!!**,,,,,r   c                 P   K   d| j         d|idd}t          ||           d {V S )Nai_cardcontent)
templateIdcardData)contentTyperS   )MARKDOWN_TEMPLATE_IDr   )r   webhookrS   payloads       r   reply_markdownzGraphHandler.reply_markdown   sS      $"7w 
 
 $GW555555555r   Nc                     |t                      }t                      }d|j        _        d|j        _        d|j        d<   t          j        |d          |_        |S )Nr0   r1   zapplication/jsonzContent-TypeF)ensure_ascii)	dictrE   rG   r2   r3   r>   jsondumpsr<   )r   rY   responses      r   get_success_responsez!GraphHandler.get_success_response   sW    ?ffG ??$'!-1*+=(
7???r   r;   )r	   r
   r   rW   r   rZ   ra   __classcell__)rP   s   @r   rM   rM   }   sa        H- - - - -
6 
6 
6       r   rM   )r^   streamr   r   utilsr   objectr   r   r.   r9   rE   rM   r   r   r   <module>rf      sA    4 4 4 4 4 4 4 4 ! ! ! ! ! !% % % % %6 % % %    &   4       4    6   >    F   @    ?     r   