
    i                         d dl Z d dlZd dlZd dlmZmZmZ d dlT d dlm	Z	 d dl
mZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZ ddlmZ  G d de          Z G d de          ZdS )    N)OptionalCallableAny)*)LogLevel)InvalidArgsExceptionAccessDeniedExceptionCardExceptionNoAuthorizationException)HttpHandler)JSON)logger)
RawRequestRawResponse)Strings	AESCipher   )Cardc            
       p    e Zd ZddZdedefdZdedefdZ	deddfd	Z
edd
edededdfd            ZdS )CardActionHandlerreturnNc                 0    d | _         d | _        d | _        d S N_encrypt_key_verification_token
_processor)selfs    d/home/piyush/.hermes/hermes-agent/venv/lib/python3.11/site-packages/lark_oapi/card/action_handler.py__init__zCardActionHandler.__init__   s    +/26 ;?    reqc                    t          j        d|j         dt          j        |j                   d|j        t          |j        t                    nd             t                      }d|_
        |                    t           d           	 |j        t          d          |                     |j                  }t          j        |t                     }||_        t$          |j        k    rv| j        &|j        t-          j        | j        |j                  st1          d          t          j        d|j        i                              t                    |_        |S |                     |           | j        t=          d	          |                     |          }| d
                    t                    |_        nt?          |t@                    r||_        nyt?          |t                    rtA          |t                    |_        nIt?          |t                    r|}n1t          j        |                              t                    |_        |S # tB          $ r}t          j"        d|j         d|j        #                    tH                     d|            d|_
        dt          |          z  }|                    t                    |_        |cY d }~S d }~ww xY w)Nzcard access, uri: z, headers: z, body:    z; charset=utf-8zrequest body is nullzinvalid verification_token	challengezprocessor not foundz{"msg":"success"}zhandle card failed, uri: z, request_id: z, err: i  z{"msg":"%s"})%r   debugurir   marshalheadersbodystrUTF_8r   status_codeset_content_typeAPPLICATION_JSONr   _decrypt	unmarshalr   rawURL_VERIFICATIONtyper   tokenhmaccompare_digestr	   r%   encodecontent_verify_signr   r
   
isinstancebytes	Exception	exceptiongetX_REQUEST_ID)r   r"   resp	plaintextcardresulte	resp_bodys           r   dozCardActionHandler.do   s    W#' W W!%ck!:!:W W69h6Jc#(E222PTW W 	X 	X 	X }}!1BBBCCC4	x*+ABBB ch//I >)T22DDH49,,+3tz7IQUQd,djR R7I 00LMMM  $|[$.,IJJQQRWXX !!#&&&&#$9::: //$//F ~6==eDDFE** B%FC(( B$VU33FK00 B#|F33::5AAK 	 	 	lCGll3;??S_C`C`llijlln n n"D*SVV3I$++E22DLKKKKKK	s'   CI %C9I 
K,)A8K'!K,'K,r9   c                 F   t          j        |                              d          }t          j        |          rPt          j        | j                  rt          d          t          | j                  	                    |          }nt          |t                    }|S )Nencryptzencrypt_key not found)jsonloadsr?   r   is_not_emptyis_emptyr   r   r   decrypt_strr+   r,   )r   r9   rI   rB   s       r   r0   zCardActionHandler._decryptX   s    *W%%)))44(( 	, 122 H./FGGG!$"344@@IIIIGU++Ir!   requestc                 4   |j                             t                    }t          j        | j                  r|rt          d          d S |j                             t                    }|j                             t                    }|||t          d          ||z   | j        z   	                    t                    |j        pdz   }t          j        |                                          }t          j        ||          st          d          d S )Nz;signature received but verification_token is not configuredzsignature verification failedr!   )r)   r?   LARK_REQUEST_SIGNATUREr   rM   r   r	   LARK_REQUEST_TIMESTAMPLARK_REQUEST_NONCEr8   r,   r*   hashlibsha1	hexdigestr6   r7   )r   rO   	signature	timestampnoncebsexpecteds          r   r:   zCardActionHandler._verify_signd   s   O''(>??	D455 	  +Q   FO''(>??	##$6771B'(GHHH%$"::BB5IIW\M`]`a<##--//"9h77 	I'(GHHH	I 	Ir!   encrypt_keyverification_tokenlevelCardActionHandlerBuilderc                 r    |&t          j        t          |j                             t	          | |          S r   )r   setLevelintvaluer_   )r\   r]   r^   s      r   builderzCardActionHandler.builderw   s3    OC,,---'5GHHHr!   )r   Nr   )__name__
__module____qualname__r    r   r   rG   r<   r+   r0   r:   staticmethodr   rd    r!   r   r   r      s        @ @ @ @
=j =[ = = = =~
 
# 
 
 
 
IJ I4 I I I I& I IS Ic I( IVp I I I \I I Ir!   r   c                   P    e Zd ZdededdfdZdeegef         dd fdZde	fdZ
dS )	r_   r\   r]   r   Nc                 0    || _         || _        d | _        d S r   r   )r   r\   r]   s      r   r    z!CardActionHandlerBuilder.__init__   s    '#5 ;?r!   fc                     || _         | S r   )r   )r   rl   s     r   registerz!CardActionHandlerBuilder.register   s    r!   c                 j    t                      }| j        |_        | j        |_        | j        |_        |S r   )r   r   r   r   )r   card_action_handlers     r   buildzCardActionHandlerBuilder.build   s7    /11+/+<(262J/)-&""r!   )re   rf   rg   r+   r    r   r   r   rn   r   rq   ri   r!   r   r_   r_   ~   s        @C @S @T @ @ @ @
(D63;/ 4N    #( # # # # # #r!   r_   ) rT   r6   rJ   typingr   r   r   lark_oapi.core.constlark_oapi.core.enumr   lark_oapi.core.exceptionr   r	   r
   r   lark_oapi.core.httpr   lark_oapi.core.jsonr   lark_oapi.core.logr   lark_oapi.core.modelr   r   lark_oapi.core.utilsr   r   modelr   r   objectr_   ri   r!   r   <module>r}      s      * * * * * * * * * * " " " " ( ( ( ( ( (            + + + + + + $ $ $ $ $ $ % % % % % % 8 8 8 8 8 8 8 8 3 3 3 3 3 3 3 3      iI iI iI iI iI iI iI iIX# # # # #v # # # # #r!   