From cff50f9f66e68d34a05ec7a2ac732e56eb8663c3 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 2 Jan 2021 15:48:33 +0100 Subject: [PATCH] Add response-model for show_config --- freqtrade/rpc/api_server/api_schemas.py | 23 +++++++++++++++++++++++ freqtrade/rpc/api_server/api_v1.py | 5 ++--- freqtrade/rpc/rpc.py | 2 +- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py index 60b2970eb..16a1c263d 100644 --- a/freqtrade/rpc/api_server/api_schemas.py +++ b/freqtrade/rpc/api_server/api_schemas.py @@ -112,6 +112,29 @@ class Daily(BaseModel): stake_currency: str +class ShowConfig(BaseModel): + dry_run: str + stake_currency: str + stake_amount: float + max_open_trades: int + minimal_roi: Dict[str, Any] + stoploss: float + trailing_stop: bool + trailing_stop_positive: Optional[float] + trailing_stop_positive_offset: Optional[float] + trailing_only_offset_is_reached: Optional[bool] + timeframe: str + timeframe_ms: int + timeframe_min: int + exchange: str + strategy: str + forcebuy_enabled: bool + ask_strategy: Dict[str, Any] + bid_strategy: Dict[str, Any] + state: str + runmode: str + + class TradeSchema(BaseModel): trade_id: int pair: str diff --git a/freqtrade/rpc/api_server/api_v1.py b/freqtrade/rpc/api_server/api_v1.py index ab68c3b68..a2082103b 100644 --- a/freqtrade/rpc/api_server/api_v1.py +++ b/freqtrade/rpc/api_server/api_v1.py @@ -15,7 +15,7 @@ from freqtrade.rpc.api_server.api_schemas import (AvailablePairs, Balances, Blac ForceBuyPayload, ForceBuyResponse, ForceSellPayload, Locks, Logs, OpenTradeSchema, PairHistory, PerformanceEntry, Ping, PlotConfig, - Profit, ResultMsg, Stats, StatusMsg, + Profit, ResultMsg, ShowConfig, Stats, StatusMsg, StrategyListResponse, StrategyResponse, TradeResponse, Version, WhitelistResponse) from freqtrade.rpc.api_server.deps import get_config, get_rpc, get_rpc_optional @@ -98,8 +98,7 @@ def edge(rpc: RPC = Depends(get_rpc)): return rpc._rpc_edge() -# TODO: Missing response model -@router.get('/show_config', tags=['info']) +@router.get('/show_config', response_model=ShowConfig, tags=['info']) def show_config(rpc: Optional[RPC] = Depends(get_rpc_optional), config=Depends(get_config)): state = '' if rpc: diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 70a99a186..4ad2b3485 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -111,7 +111,7 @@ class RPC: self._fiat_converter = CryptoToFiatConverter() @staticmethod - def _rpc_show_config(config, botstate: State) -> Dict[str, Any]: + def _rpc_show_config(config, botstate: Union[State, str]) -> Dict[str, Any]: """ Return a dict of config options. Explicitly does NOT return the full config to avoid leakage of sensitive