52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
from contextlib import asynccontextmanager
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.security import OAuth2PasswordBearer
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from fastapi_pagination import add_pagination
|
|
|
|
|
|
from db import create_db_and_tables
|
|
from user import user_router, auth_router, create_admin_user
|
|
from account.account_routes import router as account_router
|
|
from account.category_routes import router as category_router
|
|
from payee.routes import router as payee_router
|
|
from transaction.routes import router as transaction_router
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
create_db_and_tables()
|
|
create_admin_user()
|
|
yield
|
|
#do something before end
|
|
|
|
app = FastAPI(lifespan=lifespan)
|
|
add_pagination(app)
|
|
|
|
origins = [
|
|
"http://localhost:8000",
|
|
"http://localhost:5173",
|
|
]
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=origins,
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.include_router(auth_router, prefix="/auth", tags=["auth"], )
|
|
app.include_router(user_router, prefix="/users", tags=["users"])
|
|
app.include_router(account_router, prefix="/accounts", tags=["accounts"])
|
|
app.include_router(category_router, prefix="/categories", tags=["categories"])
|
|
app.include_router(payee_router, prefix="/payees", tags=["payees"])
|
|
app.include_router(transaction_router, prefix="/transactions", tags=["transactions"])
|
|
|
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
|
|
if __name__ == '__main__':
|
|
import uvicorn
|
|
uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True)
|