summaryrefslogtreecommitdiff
path: root/services/api/src/trading_api/routers
diff options
context:
space:
mode:
Diffstat (limited to 'services/api/src/trading_api/routers')
-rw-r--r--services/api/src/trading_api/routers/orders.py11
-rw-r--r--services/api/src/trading_api/routers/portfolio.py11
-rw-r--r--services/api/src/trading_api/routers/strategies.py4
3 files changed, 14 insertions, 12 deletions
diff --git a/services/api/src/trading_api/routers/orders.py b/services/api/src/trading_api/routers/orders.py
index 217efef..b664e2a 100644
--- a/services/api/src/trading_api/routers/orders.py
+++ b/services/api/src/trading_api/routers/orders.py
@@ -3,12 +3,13 @@
import logging
from fastapi import APIRouter, HTTPException, Query, Request
-from shared.sa_models import OrderRow, SignalRow
from slowapi import Limiter
from slowapi.util import get_remote_address
from sqlalchemy import select
from sqlalchemy.exc import OperationalError
+from shared.sa_models import OrderRow, SignalRow
+
logger = logging.getLogger(__name__)
router = APIRouter()
@@ -42,10 +43,10 @@ async def get_orders(request: Request, limit: int = Query(50, ge=1, le=1000)):
]
except OperationalError as exc:
logger.error("Database error fetching orders: %s", exc)
- raise HTTPException(status_code=503, detail="Database unavailable")
+ raise HTTPException(status_code=503, detail="Database unavailable") from exc
except Exception as exc:
logger.error("Failed to get orders: %s", exc, exc_info=True)
- raise HTTPException(status_code=500, detail="Failed to retrieve orders")
+ raise HTTPException(status_code=500, detail="Failed to retrieve orders") from exc
@router.get("/signals")
@@ -73,7 +74,7 @@ async def get_signals(request: Request, limit: int = Query(50, ge=1, le=1000)):
]
except OperationalError as exc:
logger.error("Database error fetching signals: %s", exc)
- raise HTTPException(status_code=503, detail="Database unavailable")
+ raise HTTPException(status_code=503, detail="Database unavailable") from exc
except Exception as exc:
logger.error("Failed to get signals: %s", exc, exc_info=True)
- raise HTTPException(status_code=500, detail="Failed to retrieve signals")
+ raise HTTPException(status_code=500, detail="Failed to retrieve signals") from exc
diff --git a/services/api/src/trading_api/routers/portfolio.py b/services/api/src/trading_api/routers/portfolio.py
index fde90cb..56bee7c 100644
--- a/services/api/src/trading_api/routers/portfolio.py
+++ b/services/api/src/trading_api/routers/portfolio.py
@@ -3,10 +3,11 @@
import logging
from fastapi import APIRouter, HTTPException, Query, Request
-from shared.sa_models import PositionRow
from sqlalchemy import select
from sqlalchemy.exc import OperationalError
+from shared.sa_models import PositionRow
+
logger = logging.getLogger(__name__)
router = APIRouter()
@@ -32,10 +33,10 @@ async def get_positions(request: Request):
]
except OperationalError as exc:
logger.error("Database error fetching positions: %s", exc)
- raise HTTPException(status_code=503, detail="Database unavailable")
+ raise HTTPException(status_code=503, detail="Database unavailable") from exc
except Exception as exc:
logger.error("Failed to get positions: %s", exc, exc_info=True)
- raise HTTPException(status_code=500, detail="Failed to retrieve positions")
+ raise HTTPException(status_code=500, detail="Failed to retrieve positions") from exc
@router.get("/snapshots")
@@ -55,7 +56,7 @@ async def get_snapshots(request: Request, days: int = Query(30, ge=1, le=365)):
]
except OperationalError as exc:
logger.error("Database error fetching snapshots: %s", exc)
- raise HTTPException(status_code=503, detail="Database unavailable")
+ raise HTTPException(status_code=503, detail="Database unavailable") from exc
except Exception as exc:
logger.error("Failed to get snapshots: %s", exc, exc_info=True)
- raise HTTPException(status_code=500, detail="Failed to retrieve snapshots")
+ raise HTTPException(status_code=500, detail="Failed to retrieve snapshots") from exc
diff --git a/services/api/src/trading_api/routers/strategies.py b/services/api/src/trading_api/routers/strategies.py
index 5db7320..157094c 100644
--- a/services/api/src/trading_api/routers/strategies.py
+++ b/services/api/src/trading_api/routers/strategies.py
@@ -44,7 +44,7 @@ async def list_strategies():
]
except (ImportError, FileNotFoundError) as exc:
logger.error("Strategy loading error: %s", exc)
- raise HTTPException(status_code=503, detail="Strategy engine unavailable")
+ raise HTTPException(status_code=503, detail="Strategy engine unavailable") from exc
except Exception as exc:
logger.error("Failed to list strategies: %s", exc, exc_info=True)
- raise HTTPException(status_code=500, detail="Failed to list strategies")
+ raise HTTPException(status_code=500, detail="Failed to list strategies") from exc