Files
IBKR-Full-Stack-Trading-Das…/routers/health.py
T

42 lines
993 B
Python

import os
from fastapi import APIRouter
from fastapi.responses import JSONResponse
import dependencies
router = APIRouter()
@router.get("/health")
async def health():
ib_connected = False
account = None
trading_mode = os.getenv("TRADING_MODE", "unknown").split("#", 1)[0].strip() or "unknown"
try:
ib_inst = dependencies.get_ib()
ib_connected = ib_inst.isConnected()
accounts = ib_inst.managedAccounts()
account = accounts[0] if accounts else None
except Exception:
pass
db_ok = False
try:
cur = dependencies.get_db_cursor()
cur.execute("SELECT 1")
db_ok = True
except Exception:
pass
return JSONResponse(
{
"status": "ok" if (ib_connected and db_ok) else "degraded",
"ib_connected": ib_connected,
"trading_mode": trading_mode,
"account": account,
"db_ok": db_ok,
"version": "3.0",
}
)