o
    㥵i                     @  st   d dl mZ d dlZd dl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mZ G d
d deZdS )    )annotationsN)md5   )OpenAPI   )request)HTMLResponseJSONResponse)	HttpRouteRoutesc                   @  s   e Zd ZedddZdS )r   returnr   c              	     sb   dd } fdd} fdd} fdd}t td	|d d
td|d d
td|d d
td|d d
S )Nc                     s   t jjt jjd dS )N/)path)r   urlreplacer    r   r   D/home/ubuntu/.local/lib/python3.10/site-packages/kui/asgi/openapi.pyredirect   s   z OpenAPI.routes.<locals>.redirectc                     s   t  jS )N)r   html_templater   selfr   r   template   s   
z OpenAPI.routes.<locals>.templatec                    s:     t} t| tt|   t j	
 ddS )N)hashreload)headers)create_docsr   r	   r   jsondumpsencode	hexdigeststrr   loweropenapir   r   r   	json_docs   s   
z!OpenAPI.routes.<locals>.json_docsc                    s    fdd} |  S )Nc                   sX     t} tt|   t| dV  tjjs*t	
dI d H  tjjrd S d S )N)iddatag      ?)r   r   r   r   r   r   r   appshould_exitasynciosleepr"   r   r   r   g!   s   
z,OpenAPI.routes.<locals>.heartbeat.<locals>.gr   )r+   r   r   r   	heartbeat    s   	z!OpenAPI.routes.<locals>.heartbeat )namer   z/jsonz
/heartbeat)r   r
   )r   r   r   r$   r,   r   r   r   routes   s   
zOpenAPI.routesN)r   r   )__name__
__module____qualname__propertyr/   r   r   r   r   r      s    r   )
__future__r   r)   r   hashlibr   r#   r   _OpenAPIrequestsr   	responsesr   r	   routingr
   r   r   r   r   r   <module>   s    