File size: 1,435 Bytes
3061962 ed5ec6a 3061962 adb81a7 3061962 ed5ec6a 3061962 |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
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 ocr.core.config import settings
from ocr.core.wrappers import OcrResponseWrapper, ErrorOcrResponse
def create_app() -> FastAPI:
app = FastAPI()
from ocr.api.report import report_router
app.include_router(report_router, tags=['report'])
from ocr.api.message import message_router
app.include_router(message_router, tags=['message'])
from ocr.api.consult import consult_router
app.include_router(consult_router, tags=['consult'])
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 OcrResponseWrapper(
data=None,
successful=False,
error=ErrorOcrResponse(message=str(exc.detail))
).response(exc.status_code)
@app.get("/")
async def read_root():
return {"report": "Hello world!"}
return app
|