You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
"""ORB Scanner API endpoints."""
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from apps.web import orb_scanner_service as svc
|
|
|
|
router = APIRouter(prefix="/orb-scanner", tags=["orb-scanner"])
|
|
|
|
|
|
@router.post("/check", response_model=svc.OrbCheckResponse)
|
|
async def check(req: svc.OrbCheckRequest) -> svc.OrbCheckResponse:
|
|
return await svc.check(req)
|
|
|
|
|
|
@router.post("/exit-check", response_model=svc.OrbExitCheckResponse)
|
|
async def exit_check(req: svc.OrbExitCheckRequest) -> svc.OrbExitCheckResponse:
|
|
return await svc.exit_check(req)
|
|
|
|
|
|
@router.get("/strategies", response_model=svc.StrategiesResponse)
|
|
async def strategies() -> svc.StrategiesResponse:
|
|
return svc.StrategiesResponse(
|
|
strategies=svc.list_strategies(),
|
|
default=svc._ORB_DEFAULT_STRATEGY,
|
|
)
|
|
|
|
|
|
@router.get("/gainers-scan", response_model=svc.GainersScanResponse)
|
|
async def gainers_scan(count: int = 200, strategy: str | None = None) -> svc.GainersScanResponse:
|
|
return await svc.gainers_scan(count, strategy)
|