dialogflowAPI / utils /health_check.py
OnlyBiggg
'refactor'
5564ecb
raw
history blame
918 Bytes
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from math import ceil
from fastapi import FastAPI, Request, Response
from fastapi.routing import APIRoute
from common.exception import errors
def ensure_unique_route_names(app: FastAPI) -> None:
"""
:param app: FastAPI
:return:
"""
temp_routes = set()
for route in app.routes:
if isinstance(route, APIRoute):
if route.name in temp_routes:
raise ValueError(f'Non-unique route name: {route.name}')
temp_routes.add(route.name)
async def http_limit_callback(request: Request, response: Response, expire: int) -> None:
"""
:param request: FastAPI
:param response: FastAPI
:param expire:
:return:
"""
expires = ceil(expire / 1000)
raise errors.HTTPError(code=429, msg='The request is too frequent, please try again later', headers={'Retry-After': str(expires)})