mirror of
https://github.com/ryanamay/sparkle.git
synced 2024-09-20 04:20:35 +00:00
add: basic stock search
This commit is contained in:
parent
bee6e96d53
commit
8dd9bcadb9
3 changed files with 18 additions and 23 deletions
|
@ -5,25 +5,18 @@ from app.core.websocket import start_finnhub_websocket
|
|||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/price/{symbol}")
|
||||
async def get_stock_price(symbol: str):
|
||||
url = f"https://finnhub.io/api/v1/quote?symbol={symbol}&token={settings.FINNHUB_API_KEY}"
|
||||
response = requests.get(url)
|
||||
@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("/start-websocket")
|
||||
async def start_websocket():
|
||||
"""
|
||||
Endpoint to start the Finnhub WebSocket connection.
|
||||
"""
|
||||
start_finnhub_websocket()
|
||||
return {"message": "WebSocket connection started"}
|
||||
|
||||
@router.get("/stop-websocket")
|
||||
async def stop_websocket():
|
||||
"""
|
||||
Endpoint to stop the Finnhub WebSocket connection.
|
||||
"""
|
||||
# Code to stop the WebSocket connection
|
||||
return {"message": "WebSocket connection stopped"}
|
|
@ -1,4 +1,5 @@
|
|||
import os
|
||||
import finnhub
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
@ -6,5 +7,6 @@ load_dotenv()
|
|||
class Settings:
|
||||
FINNHUB_API_KEY: str = os.getenv("FINNHUB_API_KEY")
|
||||
FINNHUB_WEBSOCKET_URL: str = "wss://ws.finnhub.io?token=" + FINNHUB_API_KEY
|
||||
client: finnhub.Client = finnhub.Client(api_key=FINNHUB_API_KEY)
|
||||
|
||||
settings = Settings()
|
||||
|
|
|
@ -4,12 +4,12 @@ from app.api.v1.routes import stock
|
|||
from app.ws.routes import trades
|
||||
app = FastAPI()
|
||||
|
||||
app.include_router(stock.router, prefix="/api/v1")
|
||||
app.include_router(trades.router, prefix="/ws")
|
||||
|
||||
|
||||
@app.on_event("startup")
|
||||
async def startup_event():
|
||||
# Code to run on app startup, e.g., connect to WebSocket
|
||||
app.include_router(stock.router, prefix="/api/v1")
|
||||
app.include_router(trades.router, prefix="/ws")
|
||||
pass
|
||||
|
||||
@app.on_event("shutdown")
|
||||
|
|
Loading…
Reference in a new issue