FastAPI + PostgreSQL 16. KYC, issue sistemi, permission/group yönetimi, session yönetimi, API client auth (kışla kapısı), officials/persons CRUD. Migration 0001–0013 dahil.
31 lines
974 B
Python
31 lines
974 B
Python
from contextlib import asynccontextmanager
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from mm_api.db import pool
|
|
from mm_api.routers import locations, admin_units, auth, permissions, kyc, issues, officials, clients
|
|
from mm_api.middleware import client_auth_middleware
|
|
import mm_api.services.auth as auth_svc
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
await pool.open()
|
|
app.state.pool = pool
|
|
async with pool.connection() as conn:
|
|
await auth_svc.cleanup_expired_tokens(conn)
|
|
yield
|
|
await pool.close()
|
|
|
|
|
|
app = FastAPI(title="Memleketmeselesi API", lifespan=lifespan)
|
|
|
|
app.middleware("http")(client_auth_middleware)
|
|
|
|
app.include_router(locations.router)
|
|
app.include_router(admin_units.router)
|
|
app.include_router(auth.router)
|
|
app.include_router(permissions.router)
|
|
app.include_router(kyc.router)
|
|
app.include_router(issues.router)
|
|
app.include_router(officials.router)
|
|
app.include_router(clients.router)
|