TraumaBackend / trauma /__init__.py
brestok's picture
finish backend
9150f8e
raw
history blame
1.35 kB
import os
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from starlette.exceptions import HTTPException as StarletteHTTPException
from starlette.staticfiles import StaticFiles
from trauma.core.config import settings
from trauma.core.wrappers import TraumaResponseWrapper, ErrorTraumaResponse
def create_app() -> FastAPI:
app = FastAPI()
from trauma.api.chat import chat_router
app.include_router(chat_router, tags=['chat'])
from trauma.api.message import message_router
app.include_router(message_router, tags=['message'])
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
static_directory = os.path.join(settings.BASE_DIR, 'static')
if not os.path.exists(static_directory):
os.makedirs(static_directory)
app.mount(
'/static',
StaticFiles(directory='static'),
)
@app.exception_handler(StarletteHTTPException)
async def http_exception_handler(_, exc):
return TraumaResponseWrapper(
data=None,
successful=False,
error=ErrorTraumaResponse(message=str(exc.detail))
).response(exc.status_code)
@app.get("/")
async def read_root():
return {"message": "Hello world!"}
return app