chat_back/app/main.py
2024-06-01 13:04:00 +05:00

58 lines
1.5 KiB
Python

from fastapi import FastAPI
from sqladmin import Admin
from starlette.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
from app.admin.auth import authentication_backend
from app.admin.views import UsersAdmin, ChatsAdmin, MessagesAdmin, UsersXChatsAdmin
from app.database import engine
from app.users.router import router as user_router
from app.pages.router import router as pages_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(chat_router)
app.include_router(user_router)
app.include_router(pages_router)
app.include_router(image_router)
origins = ["http://localhost:5173"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"],
allow_headers=[
"Content-Type",
"Set-Cookie",
"Access-Control-Allow-Headers",
"Authorization",
"Accept"
],
)
admin = Admin(app, engine, authentication_backend=authentication_backend)
admin.add_view(UsersAdmin)
admin.add_view(ChatsAdmin)
admin.add_view(MessagesAdmin)
admin.add_view(UsersXChatsAdmin)
app.mount("/static", StaticFiles(directory="app/static"), name="static")