-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
31 lines (21 loc) · 847 Bytes
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from fastapi import FastAPI, Depends, HTTPException
from starlette import status
from starlette.requests import Request
from config import get_settings
from db import models
from db.main import engine
from router.dependencies import get_kafka
from router.routes import api_router
settings = get_settings()
app = FastAPI()
models.Base.metadata.create_all(bind=engine)
async def check_auth_middleware(request: Request):
if settings.environment == 'production':
auth_token = request.headers.get('Authorization')
if auth_token != settings.auth_token or auth_token is None:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
@app.on_event("shutdown")
def shutdown_event():
producer = get_kafka()
producer.close()
app.include_router(api_router, dependencies=[Depends(check_auth_middleware)])