
    ]i$                     6   d dl mZmZ d dlmZ d dlmZ d dl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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
ejP                  sdndejP                  sdndd      Z) ee      Z*e*e)jV                  _*        e)jY                  ee	       e)j[                  eej\                  j_                  d      D  cg c]#  } | ja                         s| ja                         % c} ddgdg       e)jc                  ejd                  ddg       e)jc                  e$jd                  ddg       e)jc                  e!jd                  ddg       e)jc                  e'jd                  ddg       e)jc                  e#jd                  ddg       e)jc                  e&jd                  d d!g       e)jc                  ejd                  d"d#g       e)jc                  e%jd                  d"d$g       e)jc                  ejd                  d"d%g       e)jc                  ejd                  d"d&g       e)jc                  ejd                  d"d'g       e)jc                  e jd                  d"d(g       e)jc                  ejd                  d"d)g       e)jc                  e"jd                  d"d)g       e)jc                  ejd                  d"d*g       e)jc                  ejd                  d"d+g       e)jc                  ejd                  d"d,g       e)jc                  ejd                  d"d-g       e)jc                  ejd                  d"d.g       e)jc                  ejd                  d"d/g       e)jc                  ejd                  d"d0g       e)jc                  ejd                  d"d1g       e)jc                  ejd                  d"d2g       e)jg                  e4      d3ed4e4d5efd6       Z5e)jm                  d7      d5e7fd8       Z8yc c} w )9    )FastAPIRequest)CORSMiddleware)JSONResponse)Limiter_rate_limit_exceeded_handler)get_remote_address)RateLimitExceeded)settings)	analyticsanomali	assistantauditauth	dashboard
end_to_endexpensesfilesgeneral_affairslaporanlaporan_shift
pemindahan	penebusan
penerimaan
penyetoranproductsrekonsiliasirolesspbustock_adjustmentsystemuserszSPBU Manager APIz1.0.0z	/api/docsNz
/api/redocF)titleversiondocs_url	redoc_urlredirect_slashes)key_func,T*)allow_originsallow_credentialsallow_methodsallow_headersz/api/v1/authr   )prefixtagsz/api/v1/spbusr   z/api/v1/productsr   z/api/v1/usersr"   z/api/v1/rolesr   z/api/v1/systemr!   z/api/v1	penjualanstockr   r   r   r   r   r   r   r   r   r   r   r   zgeneral-affairsr   requestexcreturnc                 r  K   t         j                  dk(  rt        |      nd}i }| j                  j	                  d      }|r]t         j
                  j                  d      D cg c]#  }|j                         s|j                         % }}d|v s||v r
||d<   d|d<   t        d	d
d|di|      S c c}w w)NdevelopmentzInternal server errororiginr)   r*   zAccess-Control-Allow-Origintruez Access-Control-Allow-Credentialsi  errorINTERNAL_ERROR)codemessage)status_codecontentheaders)	r   ENVIRONMENTstrr@   getCORS_ORIGINSsplitstripr   )r3   r4   msgr@   r8   oalloweds          */var/www/html/spbu.com/backend/app/main.pyglobal_exception_handlerrK   8   s     **m;#c(AXC !G__  *F&.&;&;&A&A#&FT&F!'')1779&FT'>Vw.5;G12:@G67#3DE 	 Us   A!B7#B29B2,B7z/api/healthc                     K   ddiS w)Nstatusok rO       rJ   healthrQ   K   s     ds   )9fastapir   r   fastapi.middleware.corsr   fastapi.responsesr   slowapir   r   slowapi.utilr	   slowapi.errorsr
   app.core.configr   app.routersr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   is_productionapplimiterstateadd_exception_handleradd_middlewarerD   rE   rF   include_routerrouterexception_handler	ExceptionrK   rC   dictrQ   )rH   s   0rJ   <module>re      s   $ 2 * 9 + , $ I  I  I  I  I  I  I
 ( 6 6[D"*"8"8ld -
.		    +-I J   &.&;&;&A&A#&FT&F!'')1779&FT%%     4;;~VH  E   4;;fX  F   8??+=ZL  Q   5<<wi  H   5<<wi  H   6==)9
  K   =''	  N   #**9G9  M   9##I[M  J   :$$Yl^  L   8??9J<  H   :$$Yl^  L   :$$Yn=M  N   <&&y?O  P   9##I[M  J   7>>)9+  F   9##I[M  J   7>>)9+  F   :$$Yl^  L   5<<		  B   9##I[M  J   ?)))CTBU  V   5<<		  B y!G )   "$ d  g Us   P
5P
