
    kUOi>                     R	   d dl mZ d dl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mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*  edd	      Z+e+jY                  ed
gdd
gd
g       e+j[                  d      d        Z.e+j[                  d      d        Z/e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  d       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  ddg       e+ja                  ejb                  dd g       e+ja                  e jb                  dd!g       e+ja                  e!jb                  d"d#g       e+ja                  e"jb                  d$d%g       e+ja                  e#jb                  d"d&g       e+ja                  e$jb                  dd'g       e+ja                  e%jb                  dd(g       e+ja                  e&jb                  dd)g       e+ja                  e'jb                  dd*g       e+ja                  e(jb                  dd+g       e+ja                  e)jb                  dd,g       e+ja                  e*jb                  dd-g        ed.d/d0d1g      Z2 ed2d3d0d1g      Z3e+j[                  d4      d5e4fd6       Z5e+j[                  d7      d5e	fd8       Z6e+j[                  d9      d5e4fd:       Z7y;)<    )FastAPI)CORSMiddleware)Countergenerate_latestCONTENT_TYPE_LATEST)Response)List)authtenants	customers	templatesnotifications	analyticstrackingnotification_settings
ab_testingcustomer_managementfeedback
automationbillingbalancepayment_gatewaysintegrations	oauth_crmindustry_templatescrm_webhookscustom_triggerstelegramtelegram_webhookstelegram_mtprototelegram_settings
bitrix_byoapi_keyswebhooksemail_configscustom_fields	vk_groupszNotification Servicez0.1.0)titleversion*T)allow_originsallow_credentialsallow_methodsallow_headersz/api/v1/app/domainc                  8    ddl m}   |        }d|j                  iS )uC   Получить домен приложения для webhook URLr   )get_settingsdomain)app.core.configr0   
APP_DOMAIN)r0   settingss     "/var/www/notifications/app/main.pyget_app_domainr6      s     -~Hh))**    z/api/v1/integrations/providersc            
      J    ddddddddd	d
ddddddddddddddddddg} | S )uq   Получить список доступных CRM-провайдеров - публичный эндпоинтbitrix24Bitrix24uc   Bitrix24 подключается в один клик через единое приложениеoauthu   1 минутаz/logos/bitrix24.png)idnamedescriptionconnection_type
setup_timelogo_urlamocrmamoCRMu;   amoCRM - простая интеграция через APIu   2 минутыz/logos/amocrm.png1cu   1Сu;   1С облачная или локальная версияapi_keyu   5 минутz/logos/1c.pngcustomu   Другая системаu=   Подключите любую CRM через вебхукиwebhooku   3 минутыz/logos/custom.png )	providerss    r5   get_crm_providersrJ      sy    
  A&*-	
 X&*+	
 X(('	
 1Z(*+	
3!IF r7   z/api/v1)prefixz/api/v1/feedbackr   )rK   tagsr   z/api/v1/billingr   z/api/v1/balancer   z/api/v1/paymentpaymentr   r;   zindustry-templateszcrm-webhookszcustom-triggersz/api/v1/telegramr   z/tgztelegram-webhooksztelegram-mtprotoztelegram-settingsz
bitrix-byozapi-keysr$   zemail-configszcustom-fieldsz	vk-groupsnotifications_sent_totalzTotal sent notificationstenantchannelnotifications_failed_totalzTotal failed notificationsz/healthzreturnc                  
    ddiS )NstatusokrH   rH   r7   r5   healthzrV   n   s    dr7   z/metricsc                  4    t        t               t              S )N)
media_type)r   r   r   rH   r7   r5   metricsrY   s   s    O%2EFFr7   /c                  (    dt         j                  dS )Nnotification)servicer)   )appr)   rH   r7   r5   rootr_   x   s    %#++>>r7   N)8fastapir   fastapi.middleware.corsr   prometheus_clientr   r   r   starlette.responsesr   typingr	   app.apir
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r^   add_middlewaregetr6   rJ   include_routerroutersent_counterfailed_counterdictrV   rY   r_   rH   r7   r5   <module>rm      s    2 K K (  e  e  e  e  e  e  e  e*G<   %%%   	+ + 	)*% +%P   4;;y  1   7>>)  4   9##I  6   9##I  6   =''	  :   9##I  6   8??9  5   (//	  B   :$$Y  7   &--i  @   8??+=ZL  Q   :$$Yl^  L   7>>*;9+  N   7>>*;9+  N   #**3DI;  W   <&&y?O  P   9##IWI  F   %,,YFZE[  \   <&&y?O  P   ?)))CTBU  V   8??+=ZL  Q   $++EAT@U  V   #**3EM_L`  a   $++IEXDY  Z   :$$Yl^  L   8??9J<  H   8??9J<  H   =''	@Q  R   =''	@Q  R   9##I[M  Jy
   y    G G G ?d ? ?r7   