stepstead-backend/main.py
jts ea049b8ccd İlk commit: Stepstead backend (FastAPI)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 11:30:24 +03:00

72 lines
2.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Stepstead — MMO toplayıcı oyun backend
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from config import settings
from routers import auth as auth_router
from routers import character as character_router
from routers import world as world_router
from routers import harvest as harvest_router
from routers import craft as craft_router
from routers import travel as travel_router
from routers import market as market_router
from routers import leaderboard as leaderboard_router
from routers import admin as admin_router
from routers import map_tags as map_tags_router
from routers import lore as lore_router
from routers import npcs as npcs_router
from routers import quests as quests_router
from routers import chars as chars_router
from routers import ws as ws_router
app = FastAPI(title="Stepstead API", version="0.1.0")
app.add_middleware(
CORSMiddleware,
allow_origins=["https://stepstead.com", "https://www.stepstead.com", "*"],
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(auth_router.router)
app.include_router(character_router.router)
app.include_router(world_router.router)
app.include_router(harvest_router.router)
app.include_router(craft_router.router)
app.include_router(travel_router.router)
app.include_router(market_router.router)
app.include_router(leaderboard_router.router)
app.include_router(admin_router.router)
app.include_router(map_tags_router.router)
app.include_router(lore_router.router)
app.include_router(npcs_router.router)
app.include_router(quests_router.router)
app.include_router(chars_router.router)
app.include_router(ws_router.router)
@app.get("/health")
async def health():
return {"status": "ok", "app": settings.APP_NAME, "version": "0.1.0"}
@app.get("/db-health")
async def db_health():
from sqlalchemy import text
from models import AsyncSessionLocal
import cache as redis_cache
db_ok = False
db_tables = 0
try:
async with AsyncSessionLocal() as s:
r = await s.execute(text("SELECT count(*) FROM information_schema.tables WHERE table_schema='public'"))
db_tables = r.scalar_one()
db_ok = True
except Exception as e:
return {"db": False, "db_error": str(e), "redis": False}
redis_ok = await redis_cache.ping()
return {"db": db_ok, "db_tables": db_tables, "redis": redis_ok}