feat: support market-status endpoint [US only]

This commit is contained in:
ryana mittens 2024-09-06 17:43:19 +08:00
parent 6e3ba3701e
commit fd5dbc9f27
3 changed files with 24 additions and 19 deletions

View file

@ -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()

View file

@ -5,31 +5,15 @@ from app.core.websocket import start_finnhub_websocket
router = APIRouter() router = APIRouter()
@router.get("/search") @router.get("/market-status")
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")
async def market_news(): async def market_news():
""" """
API to get latest market news. API to get latest market news.
""" """
params = { params = {
"token": settings.FINNHUB_API_KEY, "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() return response.json()

View file

@ -2,6 +2,7 @@ from fastapi import FastAPI
from app.core.config import settings from app.core.config import settings
from app.api.v1.routes import stock from app.api.v1.routes import stock
from app.api.v1.routes import news from app.api.v1.routes import news
from app.api.v1.routes import market
from app.ws.routes import trades from app.ws.routes import trades
app = FastAPI() app = FastAPI()
@ -11,6 +12,7 @@ app = FastAPI()
async def startup_event(): async def startup_event():
app.include_router(stock.router, prefix="/api/v1") app.include_router(stock.router, prefix="/api/v1")
app.include_router(news.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") app.include_router(trades.router, prefix="/ws")
pass pass