diff options
Diffstat (limited to 'backend/app/main.py')
| -rw-r--r-- | backend/app/main.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/backend/app/main.py b/backend/app/main.py index e7b9691..b4b7e1b 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -9,7 +9,21 @@ from fastapi import FastAPI, HTTPException, Query, status from fastapi.middleware.cors import CORSMiddleware from app.db import watchlist -from app.schemas import FilingsResponse, FinancialsResponse, HistoryPoint, InsidersResponse, MarketIndex, NewsResponse, RatiosResponse, SearchResult, TickerOverview, ValuationResponse, WatchlistResponse +from app.schemas import ( + AdvancedDcfInputs, + FilingsResponse, + FinancialsResponse, + HistoryPoint, + InsidersResponse, + MarketIndex, + NewsResponse, + RatiosResponse, + SearchResult, + TickerOverview, + ValuationResponse, + WaccResponse, + WatchlistResponse, +) from app.services import data_service, news_service load_dotenv() @@ -75,6 +89,16 @@ def ticker_valuation(symbol: str) -> dict: return data_service.get_valuation(symbol) +@app.post("/api/tickers/{symbol}/valuation/advanced", response_model=ValuationResponse) +def ticker_advanced_valuation(symbol: str, inputs: AdvancedDcfInputs) -> dict: + return data_service.get_advanced_valuation(symbol, inputs) + + +@app.get("/api/tickers/{symbol}/wacc", response_model=WaccResponse) +def ticker_wacc(symbol: str) -> dict[str, str | bool | float | None]: + return data_service.compute_wacc(symbol) + + @app.get("/api/tickers/{symbol}/ratios", response_model=RatiosResponse) def ticker_ratios(symbol: str) -> dict: return data_service.get_ratios(symbol) |
