From fd5dbc9f27ba015ccd79fd033c99ff8fe49dd298 Mon Sep 17 00:00:00 2001 From: Ryana May Que Date: Fri, 6 Sep 2024 17:43:19 +0800 Subject: [PATCH] feat: support market-status endpoint [US only] --- app/api/v1/routes/market.py | 19 +++++++++++++++++++ app/api/v1/routes/news.py | 22 +++------------------- app/main.py | 2 ++ 3 files changed, 24 insertions(+), 19 deletions(-) create mode 100644 app/api/v1/routes/market.py diff --git a/app/api/v1/routes/market.py b/app/api/v1/routes/market.py new file mode 100644 index 0000000..a8be659 --- /dev/null +++ b/app/api/v1/routes/market.py @@ -0,0 +1,19 @@ +from fastapi import APIRouter, Depends +import requests +from app.core.config import settings +from app.core.websocket import start_finnhub_websocket + +router = APIRouter() + +@router.get("/marketnews") +async def market_news(): + """ + API to get latest market news. + """ + params = { + "token": settings.FINNHUB_API_KEY, + "category": "general" + } + + response = requests.get("https://finnhub.io/api/v1/news", params=params) + return response.json() \ No newline at end of file diff --git a/app/api/v1/routes/news.py b/app/api/v1/routes/news.py index 17fca13..5237e8c 100644 --- a/app/api/v1/routes/news.py +++ b/app/api/v1/routes/news.py @@ -5,31 +5,15 @@ from app.core.websocket import start_finnhub_websocket router = APIRouter() -@router.get("/search") -async def lookup(query: str, exchange: str | None = None): - """ - API to search for a stock symbol. - """ - params = { - "token": settings.FINNHUB_API_KEY, - "q": query - } - - if exchange: - params["exchange"] = exchange - - response = requests.get("https://finnhub.io/api/v1/search", params=params) - return response.json() - -@router.get("/marketnews") +@router.get("/market-status") async def market_news(): """ API to get latest market news. """ params = { "token": settings.FINNHUB_API_KEY, - "category": "general" + "exchange": "US" } - response = requests.get("https://finnhub.io/api/v1/news", params=params) + response = requests.get("https://finnhub.io/api/v1/market-status", params=params) return response.json() \ No newline at end of file diff --git a/app/main.py b/app/main.py index f9b2c76..045d265 100644 --- a/app/main.py +++ b/app/main.py @@ -2,6 +2,7 @@ from fastapi import FastAPI from app.core.config import settings from app.api.v1.routes import stock from app.api.v1.routes import news +from app.api.v1.routes import market from app.ws.routes import trades app = FastAPI() @@ -11,6 +12,7 @@ app = FastAPI() async def startup_event(): app.include_router(stock.router, prefix="/api/v1") app.include_router(news.router, prefix="/api/v1") + app.include_router(market.router, prefix="/api/v1") app.include_router(trades.router, prefix="/ws") pass