
    lh                     0   d dl mZ d dlZd dlmZm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lmZmZmZmZ 	  ed	      Zd dlmZ er&d dlmZmZmZmZ d dlmZmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%  G d de      Z&d Z'd Z(d Z)y# e$ r	  ed
      w xY w)    )import_moduleN)
get_clientcapture_event)_check_minimum_versionDidNotEnableIntegration)ignore_logger)request_body_within_bounds)should_send_default_pii)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionpackage_versionzariadne.graphqlzariadne is not installed)TYPE_CHECKING)AnyDictListOptional)GraphQLErrorGraphQLResultGraphQLSchemaQueryParser)DocumentNode)EventEventProcessorc                        e Zd ZdZed        Zy)AriadneIntegrationariadnec                  d    t        d      } t        t        |        t        d       t	                y )Nr   )r   r   r   r	   _patch_graphql)versions    q/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/ariadne.py
setup_oncezAriadneIntegration.setup_once#   s'     "),17;i     N)__name__
__module____qualname__
identifierstaticmethodr#    r$   r"   r   r       s    J r$   r   c                  <   t         j                  t         j                  t         j                  t	        t
              fd       } t	        t
              fd       }t	        t
              fd       }| t         _        |t         _        |t         _        y )Nc                 x    t        |      }t        j                         j                  |        | ||      }|S )N)_make_request_event_processor
sentry_sdkget_isolation_scopeadd_event_processor)context_valuequery_parserdataevent_processorresultold_parse_querys        r"   _sentry_patched_parse_queryz3_patch_graphql.<locals>._sentry_patched_parse_query4   s9     8=&&(<<_M dCr$   c           	      |    	| g|i |}t        |d         }t        j                         j                  |       t	               }|j                         rVt               5  | D ];  }t        ||j                  t        j                  dd      \  }}t        ||       = 	 d d d        |S |S # 1 sw Y   |S xY wN   F)typehandled)client_options	mechanism)hint)_make_response_event_processorr.   r/   r0   r   	is_activer   r   optionsr   r(   r   )
errorsargskwargsr5   r4   clienterroreventr?   old_handle_errorss
            r"   %_sentry_patched_handle_graphql_errorsz=_patch_graphql.<locals>._sentry_patched_handle_graphql_errors=   s     #6;D;F;8C&&(<<_M,. 
4# 	4E"6'-~~$6$A$A',##KE4 "%d3	4
4 v
4 s   #AB11B;c           	          	| g|i |}t        |d         }t        j                         j                  |       t	               }|j                         rdt               5  | j                  xs g D ];  }t        ||j                  t        j                  dd      \  }}t        ||       = 	 d d d        |S |S # 1 sw Y   |S xY wr9   )r@   r.   r/   r0   r   rA   r   rC   r   rB   r   r(   r   )
r5   rD   rE   query_resultr4   rF   rG   rH   r?   old_handle_query_results
            r"   #_sentry_patched_handle_query_resultz;_patch_graphql.<locals>._sentry_patched_handle_query_resultU   s     /vGGG8aI&&(<<_M,. 
4#]]0b 	4E"6'-~~$6$A$A',##KE4 "%d3	4
4 |
4 s   #AB??C	)ariadne_graphqlparse_queryhandle_graphql_errorshandle_query_resultr   r   )r7   rJ   rN   rI   rM   r6   s      @@@r"   r    r    .   s    %11O'==-AA 2OD E   24EF G.   24KL M. #>O,QO)*MO'r$   c                       fd}|S )z*Add request data and api_target to events.c                    t        t              s| S t               5  	 t        j	                  d      xs i j	                  dd            }t               r1t        t               |      r| j                  di       }d|d<   |d<   n'| j	                  di       j	                  d      r| d   d= d d d        | S # t
        t        f$ r | cY cd d d        S w xY w# 1 sw Y   | S xY w)NheaderszContent-Lengthr   requestgraphql
api_targetr3   )
isinstancedictr   intget	TypeError
ValueErrorr   r
   r   
setdefault)rH   r?   content_lengthrequest_infor3   s       r"   innerz,_make_request_event_processor.<locals>.innerv   s    $%L(* 	-!$XXi(.B334DaH" '(-Gn.  %//	2>-6\*'+V$9b)--f5)$V,!	-$  z* 	- 	-
	-$ s/   C.B:A"C:CCCCC$r*   )r3   rb   s   ` r"   r-   r-   r   s    2 Lr$   c                       fd}|S )z2Add response data to the event's response context.c                     t               5  t               r*j                  d      r| j                  di       }di|d<   d d d        | S # 1 sw Y   | S xY w)NrC   contextsr3   response)r   r   r\   r_   )rH   r?   re   rf   s      r"   rb   z-_make_response_event_processor.<locals>.inner   s[    (* 	&(X\\(-C ++J;H($	 	 s   5AAr*   )rf   rb   s   ` r"   r@   r@      s    	 Lr$   )*	importlibr   r.   r   r   sentry_sdk.integrationsr   r   r   sentry_sdk.integrations.loggingr	   $sentry_sdk.integrations._wsgi_commonr
   sentry_sdk.scoper   sentry_sdk.utilsr   r   r   r   rO   ImportErrortypingr   r   r   r   r   ariadne.typesr   r   r   r   graphql.language.astr   sentry_sdk._typesr   r   r   r    r-   r@   r*   r$   r"   <module>rr      s    #  0 U U 9 K 4 3 $$56O !00UU17 ANH@}  3
1
223s   B B