Anurag33Gaikwad commited on
Commit
b383217
·
verified ·
1 Parent(s): 1cb4c71

Update app/api/routes_price.py

Browse files
Files changed (1) hide show
  1. app/api/routes_price.py +30 -21
app/api/routes_price.py CHANGED
@@ -1,21 +1,30 @@
1
- from fastapi import APIRouter, HTTPException, Query
2
- from app.schemas import HistoryResponse
3
- from app.services.market_data import get_enriched_history, last_n_candles
4
- from app.config import get_settings
5
-
6
- router = APIRouter(prefix="/api")
7
- settings = get_settings()
8
-
9
- @router.get("/price/history", response_model=HistoryResponse)
10
- def get_price_history(
11
- ticker: str = Query(..., min_length=1),
12
- days: int = Query(60, ge=30, le=365),
13
- ):
14
- try:
15
- df_raw, _df_tech = get_enriched_history(ticker)
16
- candles = last_n_candles(df_raw, min(days, settings.history_window))
17
- return HistoryResponse(ticker=ticker.upper(), historicalPrices=candles)
18
- except HTTPException:
19
- raise
20
- except Exception as e:
21
- raise HTTPException(status_code=500, detail=str(e))
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import APIRouter, HTTPException, Query
2
+ from app.schemas import HistoryResponse
3
+ from app.services.market_data import get_enriched_history, last_n_candles
4
+
5
+ router = APIRouter(prefix="/api")
6
+
7
+
8
+ @router.get("/price/history", response_model=HistoryResponse)
9
+ def get_price_history(
10
+ ticker: str = Query(..., min_length=1),
11
+ days: int = Query(60, ge=30, le=365),
12
+ ):
13
+ try:
14
+ df_raw, _df_tech = get_enriched_history(ticker)
15
+
16
+ # Cap by available data, not model window
17
+ available_days = len(df_raw)
18
+ n = min(days, available_days)
19
+
20
+ candles = last_n_candles(df_raw, n)
21
+
22
+ return HistoryResponse(
23
+ ticker=ticker.upper(),
24
+ historicalPrices=candles,
25
+ )
26
+
27
+ except HTTPException:
28
+ raise
29
+ except Exception as e:
30
+ raise HTTPException(status_code=500, detail=str(e))