chat_back/app/main.py
2024-06-07 14:03:49 +05:00

59 lines
1.6 KiB
Python

import logging
from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
from starlette.middleware.base import BaseHTTPMiddleware
from app.users.router import router as user_router
from app.chat.websocket import router as websocket_router
from app.images.router import router as image_router
# sentry_sdk.init(
# dsn=settings.SENTRY_DSN,
# traces_sample_rate=1.0,
# profiles_sample_rate=1.0,
# )
app = FastAPI(title="Чат BP", root_path="/api")
app.include_router(websocket_router)
app.include_router(user_router)
app.include_router(image_router)
origins = ["http://localhost:5173"]
headers = [
"Content-Type",
"Set-Cookie",
"Access-Control-Allow-Headers",
"Authorization",
"Accept",
"Access-Control-Allow-Origin",
"Sec-WebSocket-Protocol",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"],
allow_headers=headers,
)
app.mount("/static", StaticFiles(directory="app/static"), name="static")
class AddHeaderMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
logging.critical(f"Запрос \n{request.headers.get("Sec-Websocket-Protocol", "НИХУЯ")}")
logging.critical(f"Запрос {request.headers}")
logging.critical("Sec-Websocket-Protocol".lower() in request.headers)
response = await call_next(request)
response.headers["Sec-Websocket-Protocol"] = ""
logging.critical(f"Ответ \n {response.headers}")
return response
app.add_middleware(AddHeaderMiddleware)