import fastapi
import uvicorn

from app.routers import take
from app.routers import put
from app.routers import finish

from app.storage import mongo


app = fastapi.FastAPI(debug=True)

app.include_router(take.router)
app.include_router(put.router)
app.include_router(finish.router)

@app.exception_handler(Exception)
async def unicorn_exception_handler(request: fastapi.Request, exc: Exception):
    return fastapi.JSONResponse(
        status_code=500,
        content={"message": f"Oops! {exc.name} did something. There goes a rainbow... {exc}"},
    )

mongo.create_indexes()


if __name__ == '__main__':
    uvicorn.run(app, host="0.0.0.0", port=1239)
