From 69e88b3b353f1a2ab7a78259b480e8afbd87669c Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:46:47 +0900 Subject: fix: snapshot delay, env fields, alembic creds, API healthcheck and error handling --- services/api/src/trading_api/routers/strategies.py | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'services/api/src/trading_api/routers/strategies.py') diff --git a/services/api/src/trading_api/routers/strategies.py b/services/api/src/trading_api/routers/strategies.py index 2861eec..e968529 100644 --- a/services/api/src/trading_api/routers/strategies.py +++ b/services/api/src/trading_api/routers/strategies.py @@ -1,30 +1,37 @@ """Strategy endpoints.""" +import logging import sys from pathlib import Path -from fastapi import APIRouter +from fastapi import APIRouter, HTTPException # Add strategy-engine to path for plugin loading _STRATEGY_DIR = Path(__file__).resolve().parents[5] / "strategy-engine" if str(_STRATEGY_DIR) not in sys.path: sys.path.insert(0, str(_STRATEGY_DIR)) +logger = logging.getLogger(__name__) + router = APIRouter() @router.get("/") async def list_strategies(): """List available strategies.""" - from strategy_engine.plugin_loader import load_strategies - - strategies_dir = _STRATEGY_DIR / "strategies" - strategies = load_strategies(strategies_dir) - return [ - { - "name": s.name, - "warmup_period": s.warmup_period, - "class": type(s).__name__, - } - for s in strategies - ] + try: + from strategy_engine.plugin_loader import load_strategies + + strategies_dir = _STRATEGY_DIR / "strategies" + strategies = load_strategies(strategies_dir) + return [ + { + "name": s.name, + "warmup_period": s.warmup_period, + "class": type(s).__name__, + } + for s in strategies + ] + except Exception as exc: + logger.error("Failed to list strategies: %s", exc) + raise HTTPException(status_code=500, detail="Failed to list strategies") -- cgit v1.2.3