Files
api/main.py
2026-01-17 15:21:41 -05:00

44 lines
1.2 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from contextlib import asynccontextmanager
from routes import auth, info, order, payment
import os
from config import load_config
from database import engine, Base
ApplicationConfig = load_config()
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup: Create database tables
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
yield
# Shutdown: cleanup if needed
app = FastAPI(title="Oil Customer Gateway API", version="1.0.0", lifespan=lifespan)
app.include_router(auth, prefix="/auth", tags=["auth"])
app.include_router(info, prefix="/info", tags=["info"])
app.include_router(order, prefix="/order", tags=["order"])
app.include_router(payment, prefix="/payment", tags=["payment"])
@app.get("/")
async def root():
return {"message": "Oil Customer Gateway API", "status": "Api is online"}
app.add_middleware(
CORSMiddleware,
allow_origins=ApplicationConfig.origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Mount static files for uploaded images
app.mount("/images", StaticFiles(directory="/images"), name="images")