
    i                         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/ubuntu/.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    rJ| j        |j        k    rt-          d          d|j        z  }|                    t                    |_        |S |                     |           | j        t9          d	          |                     |          }| d
                    t                    |_        nt;          |t<                    r||_        nyt;          |t                    rt=          |t                    |_        nIt;          |t                    r|}n1t          j        |                              t                    |_        |S # t>          $ r}t          j         d|j         d|j        !                    tD                     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_tokenz{"challenge":"%s"}z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   tokenr	   	challengeencodecontent_verify_signr   r
   
isinstancebytes	Exception	exceptiongetX_REQUEST_ID)r   r"   resp	plaintextcard	resp_bodyresultes           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,, +tz99/0LMMM 5t~E	(//66 !!#&&&&#$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'   B*H3 9C9H3 3
K =A8J;5K ;K r7   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   r7   rG   r@   s       r   r/   zCardActionHandler._decryptW   s    *W%%)))44(( 	, 122 H./FGGG!$"344@@IIIIGU++Ir!   requestc                    | j         | j         dk    rd S |j                            t                    }|j                            t                    }|j                            t
                    }||z   | j         z                       t                    |j        z   }t          j
        |          }||                                k    rt          d          d S )N zsignature verification failed)r   r(   r=   LARK_REQUEST_TIMESTAMPLARK_REQUEST_NONCELARK_REQUEST_SIGNATUREr6   r+   r)   hashlibsha1	hexdigestr	   )r   rM   	timestampnonce	signaturebshs          r   r8   zCardActionHandler._verify_signc   s    #+t/G2/M/MFO''(>??	##$677O''(>??	%$"::BB5IIGLXL%%'(GHHH &%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.buildern   s3    OC,,---'5GHHHr!   )r   Nr   )__name__
__module____qualname__r    r   r   rE   r:   r*   r/   r8   staticmethodr   rc    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__v   s    '#5 ;?r!   fc                     || _         | S r   )r   )r   rk   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!   )rd   re   rf   r*   r    r   r   r   rm   r   rp   rh   r!   r   r^   r^   u   s        @C @S @T @ @ @ @
(D63;/ 4N    #( # # # # # #r!   r^   )rS   rH   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^   rh   r!   r   <module>r|      sv     * * * * * * * * * * " " " " ( ( ( ( ( (            + + + + + + $ $ $ $ $ $ % % % % % % 8 8 8 8 8 8 8 8 3 3 3 3 3 3 3 3      aI aI aI aI aI aI aI aIH# # # # #v # # # # #r!   