
    xh                        S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJrJrJrJr  S S	KJr  S S	KJr  S S
KJr  S SKJr  S S	KJr  S S	KJr  S S	KJr   S S	K!Jr"  S S	K#Jr$  S S	K%Jr&  S S	K'Jr(  S S	K)Jr*  S S	K+Jr,  S S	K-Jr.  S S	K/Jr0  S S	K1Jr2  S S	K3Jr4  S S	K5Jr6  S S	K7Jr8  S S	K9Jr:  S S	K;Jr<  S S	K=Jr>  S SK?J@r@  S SKAJBrB  S SKCJDrD  S S	KEJrF  S SKGJHrH  SSKIJJrJ  SSKKJLrLJMrM  SSKNJOrO  SSKPJQrQ  \ R                  " \S5      rT\" \Q" 5       SS\M" 5       \L" 5       /S9rU\UR                  S\5        \UR                  S\ 5        \UR                  S\5        \UR                  S\5        \UR                  S\5        \UR                  S\$5        \UR                  S\&5        \UR                  S\(5        \UR                  S\*5        \UR                  S\,5        \UR                  S\.5        \UR                  S\05        \UR                  S\65        \UR                  S\85        \UR                  S\45        \UR                  S\:5        \UR                  S\<5        \UR                  S\>5        \UR                  S\F5        \UR                  S\25        \UR                  S\"5        \UR                  \O5      S\S\O4S j5       rX " S  S!\5      rY " S" S#\J5      rZ\UR                  S$\ZS%SS&9S\4S' j5       r\ " S( S)\5      r]\UR                  S*S\]S%S+9S\4S, j5       r^g)-    N)	SocialApp)OpenIDConnectOAuth2Adapter)sync_to_async)settings)	aget_user)HttpRequest)FieldModelSchemaNinjaAPISchema)router)APIToken)APITokenSchema)User)
UserSchema)ais_user_registration_open)SOCIAL_ADAPTER_MAP   )CamelSchema   )SessionAuth	TokenAuth)ThrottleException)ORJSONParserzGlitchTip APIapi)parsertitleurls_namespaceauth0 z0/stripeembedrequestexcc                     [         R                  U SS0SS9nUR                  =n(       a/  [        U[        5      (       a  X2S'   U$ UR                  S5      US'   U$ )NmessagezPlease retry lateri  )statuszRetry-Afterz%a, %d %b %Y %H:%M:%S GMT)r   create_responseretry_after
isinstanceintstrftime)r#   r$   responser)   s       /code/glitchtip/api/api.py	throttledr/   N   sp    ""	() # H
 oo%{%k3''&1]# O '2&:&:;V&WH]#O    c                   J    \ rS rSr% \\   \S'   \S-  \S'    " S S5      rSrg)SocialAppSchema^   scopesNauthorize_urlc                        \ rS rSr\r/ SQrSrg)SocialAppSchema.Configb   )name	client_idprovider N)__name__
__module____qualname____firstlineno__r   modelmodel_fields__static_attributes__r<   r0   r.   Configr7   b   s    8r0   rD   r<   )	r=   r>   r?   r@   liststr__annotations__rD   rC   r<   r0   r.   r2   r2   ^   s     I:9 9r0   r2   c                       \ rS rSr% \\   \S'   \\S'   \" SS9r	\\S'   \\S'   \\S'   \
S	-  \S
'   \
S	-  \S'   \
S	-  \S'   \
S	-  \S'   \
S	-  \S'   \S	-  \S'   \
S	-  \S'   \
\S'   \
\S'   \
S	-  \S'   Srg	)SettingsOutg   social_appsbilling_enablediPaidForGlitchTip)aliasi_paid_for_glitchtipenable_user_registrationenable_organization_creationNstripe_public_keyplausible_urlplausible_domainchatwoot_website_token	sentryDSNsentry_traces_sample_rateenvironmentversionserver_time_zoneglitchtip_instance_namer<   )r=   r>   r?   r@   rE   r2   rG   boolr	   rO   rF   floatrC   r<   r0   r.   rI   rI   g   s    o&&!&-@!A$A"""&&Tz!:Dj $J&Tz$t|+tL 4Z'r0   rI   z	settings/T)r-   by_aliasr   c                   ^#    / n[         R                  R                  S5        S h  vN nUR                  U 5      nUR	                  5       Ul        [        R                  " UR                  5      nU[        :X  a  U" XR                  5      mOU(       a	  U" U 5      mOS mT(       a!  [        U4S j5      " 5       I S h  vN Ul        UR                  =(       d    UR                  Ul        UR                  U5        M   N NB
 [        R                  nUU[        R                   [#        5       I S h  vN  [        R$                  [        R&                  [        R(                  [        R*                  [        R,                  [        R.                  [        R0                  [        R2                  [        R4                  [        R6                  [        R8                  S.$ 7f)Nr9   c                     > T R                   $ )N)r5   )adapters   r.   <lambda>get_settings.<locals>.<lambda>   s    --r0   )rK   rL   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   )r   objectsorder_byget_provider	get_scoper4   r   getr;   r   provider_idr   r5   appendr   BILLING_ENABLEDI_PAID_FOR_GLITCHTIPr   ENABLE_ORGANIZATION_CREATIONSTRIPE_PUBLIC_KEYPLAUSIBLE_URLPLAUSIBLE_DOMAINCHATWOOT_WEBSITE_TOKENSENTRY_FRONTEND_DSNSENTRY_TRACES_SAMPLE_RATEENVIRONMENTGLITCHTIP_VERSION	TIME_ZONEGLITCHTIP_INSTANCE_NAME)r#   rK   
social_appr;   adapter_clsrL   ra   s         @r.   get_settingsrz   y   st    #%K%--66v> 'j**73$..0
(,,Z-@-@A44!'+A+ABG!'*GG-:-. . (J$ )44K
8K8K
:&#'( ?& ..O #* ( = =*D*F$F$F(0(M(M%77!//$55"*"A"A11%-%G%G++--$..#+#C#C sF   "G"DDDBG"DA G"DG"/G"5D8
6B,G"c                   @    \ rS rSr% \\S'   \S-  \S'   \S-  \S'   Srg)APIRootSchema   rY   Nuserr   r<   )	r=   r>   r?   r@   rF   rG   r   r   rC   r<   r0   r.   r|   r|      s    L
t

4
r0   r|   z0/)r   r-   r^   c                   #    SnSn[        U 5      I Sh  vN nUR                  (       a>  [        R                  R	                  S5      R                  UR                  S9I Sh  vN nSnSnU R                  nUR                  U5      nU(       a  UR                  S5      n[        U5      S:  a  US   R                  5       U:X  a  SR                  US	S 5      n	[        R                  R                  U	S
S9R                  5       I Sh  vN n
U
(       a@  U
n[        R                  R	                  S5      R                  U
R                   S9I Sh  vN nSUUS.$  GNH N NV N7f)z;/api/0/ gives information about the server and current userNsocialaccount_set)idbearerAuthorization r   r   r   T)tokenuser__is_activer    )rY   r~   r   )r   is_authenticatedr   rd   prefetch_relatedagetr   headersrh   splitlenlowerjoinr   filterafirstuser_id)r#   	user_data	auth_datar~   openapi_schemeheaderr   
auth_valuepartsr   	api_tokens              r.   api_rootr      sM     II7##D,,778KLQQww R 
 
	
 NFooGV$J  %u:?uQx~~/>AHHU12Y'E&..55T 6 fhI %	"&,,"?"?'#$)++$,-	
  1 $

-sH   E&EAE&$E %B&E&E"AE&E$E& E&"E&$E&)_loggingallauth.socialaccount.modelsr   4allauth.socialaccount.providers.openid_connect.viewsr   asgiref.syncr   django.confr   django.contrib.authr   django.httpr   ninjar	   r
   r   r   apps.alerts.apir   alerts_routerapps.api_tokens.apiapi_tokens_routerapps.api_tokens.modelsr   apps.api_tokens.schemar   apps.difs.apidifs_routerapps.environments.apienvironments_routerapps.event_ingest.apievent_ingest_routerapps.event_ingest.embed_apiembed_routerapps.files.apifiles_routerapps.importer.apiimporter_routerapps.issue_events.apiissue_events_routerapps.observability.apiobservability_routerapps.organizations_ext.apiorganizations_ext_routerapps.performance.apiperformance_routerapps.projects.apiprojects_routerapps.releases.apireleases_routerapps.sourcecode.apisourcecode_routerapps.stats.apistats_routerapps.stripe.apistripe_routerapps.teams.apiteams_routerapps.uptime.apiuptime_routerapps.users.apiusers_routerapps.users.modelsr   apps.users.schemar   apps.users.utilsr   apps.wizard.apiwizard_routerglitchtip.constantsr   schemar   authenticationr   r   
exceptionsr   parsersr   	getLoggerr=   loggerr   
add_routerexception_handlerr/   r2   rI   rh   rz   r|   r   r<   r0   r.   <module>r      s    2 '   ) # 6 6 3 ; + 1 / ? ? > 1 7 ? A I = 7 7 ; 1 3 1 3 1 " ( 7 3 2   2 ) !			8	$>

+{}	%	 s% & r& ' sM " sK   s' ( sL ! sO $ s' ( s( ) s, - s& ' sO $ sL ! z= ) s% & sL ! sM " sL ! sM " sO $ w % (){ ):  *9k 9(+ ($ {TE' ' F'T F   D=4@ K   A r0   