48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from fastapi import APIRouter, Query, Request
|
|
from app.models import StrategyStartRequest
|
|
from app.services.strategy_service import (
|
|
start_strategy,
|
|
stop_strategy,
|
|
get_strategy_status,
|
|
get_engine_status,
|
|
get_market_status,
|
|
get_strategy_logs as fetch_strategy_logs,
|
|
)
|
|
from app.services.tenant import get_request_user_id
|
|
|
|
router = APIRouter(prefix="/api")
|
|
|
|
@router.post("/strategy/start")
|
|
def start(req: StrategyStartRequest, request: Request):
|
|
user_id = get_request_user_id(request)
|
|
return start_strategy(req, user_id)
|
|
|
|
@router.post("/strategy/stop")
|
|
def stop(request: Request):
|
|
user_id = get_request_user_id(request)
|
|
return stop_strategy(user_id)
|
|
|
|
@router.get("/strategy/status")
|
|
def status(request: Request):
|
|
user_id = get_request_user_id(request)
|
|
return get_strategy_status(user_id)
|
|
|
|
@router.get("/engine/status")
|
|
def engine_status(request: Request):
|
|
user_id = get_request_user_id(request)
|
|
return get_engine_status(user_id)
|
|
|
|
@router.get("/market/status")
|
|
def market_status():
|
|
return get_market_status()
|
|
|
|
@router.get("/logs")
|
|
def get_logs(request: Request, since_seq: int = Query(0)):
|
|
user_id = get_request_user_id(request)
|
|
return fetch_strategy_logs(user_id, since_seq)
|
|
|
|
@router.get("/strategy/logs")
|
|
def get_strategy_logs_endpoint(request: Request, since_seq: int = Query(0)):
|
|
user_id = get_request_user_id(request)
|
|
return fetch_strategy_logs(user_id, since_seq)
|