o
    I@h                     @   s   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mZmZ ddl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 d dlmZ d dlmZ d dlmZmZ defddZ deddfddZ!dS )    )PlanfixToken)reschedule_job)Flaskrender_templaterequest   )Config)logger_initdb_initext_init)main_bp)auth_bp)admin_bp)bank_bp)datetime_local_formatsplit_filter)
planfix_bp)RateLimitExceeded)r   )dbinit_extensionsreturnc                  C   s   t tddd} | jt t|  t|  t|  t| j	j
d< t| j	j
d< t|  | t | jtdd | jtdd | jtd	d | t t|  |   tj }|rft|| d
 W d    | S W d    | S 1 sqw   Y  | S )NZ	templatesZstatic)Ztemplate_folderZstatic_folderr   splitz/auth)Z
url_prefixz/auth/adminz/1)app)r   __name__configZfrom_objectr   r	   r
   r   r   Z	jinja_envfiltersr   r   Zregister_blueprintr   r   r   r   r   register_error_handlersZapp_contextr   ZqueryZfirstr   )r   Ztoken r   /var/www/html/app/__init__.py
create_app   s2   





r   r   Nc                 C   s^   |  ddd }|  ddd }|  tdd }|  d	d
d }|  ddd }dS )u   
    Регистрируем пользовательские страницы ошибок:
      • 429 Too Many Requests (Flask-Limiter)
      • 404 Not Found
      • 500 Internal Server Error
      c                 S      t ddfS )Nzerrors/401.htmlr    r   er   r   r   unauthorized_handler:   s   z5register_error_handlers.<locals>.unauthorized_handler  c                 S   r!   )Nzerrors/403.htmlr&   r"   r#   r   r   r   forbidden_handler@   s   z2register_error_handlers.<locals>.forbidden_handlerc                 S   s   t dd| jddfS )Nzerrors/429.htmluJ   Забагато спроб. Спробуйте знову пізніше.)messageZdetaili  )r   descriptionr#   r   r   r   ratelimit_handlerC   s   z2register_error_handlers.<locals>.ratelimit_handler  c                 S   s   t dtjddfS )Nzerrors/404.html)pathr+   )r   r   r,   r#   r   r   r   not_found_errorN   s   z0register_error_handlers.<locals>.not_found_error  c                 S   s   t dt| ddfS )Nzerrors/500.html)errorr.   )r   strr#   r   r   r   internal_errorX   s   z/register_error_handlers.<locals>.internal_errorN)Zerrorhandlerr   )r   r%   r'   r*   r-   r1   r   r   r   r   1   s   	




	r   )"Zapp.models.planfix_modelsr   Zapp.services.planfix_jobsr   Zflaskr   r   r   r   r   
extensionsr	   r
   r   Zblueprints.main.routesr   Zblueprints.auth.routesr   Zblueprints.admin.routesr   Zblueprints.bank.routesr   r   r   r   Zapp.blueprints.planfix.routesr   Zflask_limiter.errorsr   Zapp.extensionsr   r   r   r   r   r   r   r   <module>   s     