Refactor pagination sorting parameters across multiple controllers and services to use the new SortDirection enum; update related API models and TypeScript definitions for consistency. Fix minor documentation and naming inconsistencies in the Bot and Data controllers.

This commit is contained in:
2025-12-14 20:23:26 +07:00
parent cb6b52ef4a
commit bcb00b9a86
30 changed files with 251 additions and 202 deletions

View File

@@ -1917,7 +1917,7 @@ export class BotClient extends AuthorizedApiBase {
return Promise.resolve<TradingBotResponse[]>(null as any);
}
bot_GetBotsPaginated(pageNumber: number | undefined, pageSize: number | undefined, status: BotStatus | null | undefined, name: string | null | undefined, ticker: string | null | undefined, agentName: string | null | undefined, sortBy: BotSortableColumn | undefined, sortDirection: string | null | undefined): Promise<PaginatedResponseOfTradingBotResponse> {
bot_GetBotsPaginated(pageNumber: number | undefined, pageSize: number | undefined, status: BotStatus | null | undefined, name: string | null | undefined, ticker: string | null | undefined, agentName: string | null | undefined, sortBy: BotSortableColumn | undefined, sortDirection: SortDirection | undefined): Promise<PaginatedResponseOfTradingBotResponse> {
let url_ = this.baseUrl + "/Bot/Paginated?";
if (pageNumber === null)
throw new Error("The parameter 'pageNumber' cannot be null.");
@@ -1939,7 +1939,9 @@ export class BotClient extends AuthorizedApiBase {
throw new Error("The parameter 'sortBy' cannot be null.");
else if (sortBy !== undefined)
url_ += "sortBy=" + encodeURIComponent("" + sortBy) + "&";
if (sortDirection !== undefined && sortDirection !== null)
if (sortDirection === null)
throw new Error("The parameter 'sortDirection' cannot be null.");
else if (sortDirection !== undefined)
url_ += "sortDirection=" + encodeURIComponent("" + sortDirection) + "&";
url_ = url_.replace(/[?&]$/, "");
@@ -2599,7 +2601,7 @@ export class DataClient extends AuthorizedApiBase {
return Promise.resolve<string[]>(null as any);
}
data_GetStrategiesPaginated(pageNumber: number | undefined, pageSize: number | undefined, name: string | null | undefined, ticker: string | null | undefined, agentName: string | null | undefined, sortBy: BotSortableColumn | undefined, sortDirection: string | null | undefined): Promise<PaginatedResponseOfTradingBotResponse> {
data_GetStrategiesPaginated(pageNumber: number | undefined, pageSize: number | undefined, name: string | null | undefined, ticker: string | null | undefined, agentName: string | null | undefined, sortBy: BotSortableColumn | undefined, sortDirection: SortDirection | undefined): Promise<PaginatedResponseOfTradingBotResponse> {
let url_ = this.baseUrl + "/Data/GetStrategiesPaginated?";
if (pageNumber === null)
throw new Error("The parameter 'pageNumber' cannot be null.");
@@ -2619,7 +2621,9 @@ export class DataClient extends AuthorizedApiBase {
throw new Error("The parameter 'sortBy' cannot be null.");
else if (sortBy !== undefined)
url_ += "sortBy=" + encodeURIComponent("" + sortBy) + "&";
if (sortDirection !== undefined && sortDirection !== null)
if (sortDirection === null)
throw new Error("The parameter 'sortDirection' cannot be null.");
else if (sortDirection !== undefined)
url_ += "sortDirection=" + encodeURIComponent("" + sortDirection) + "&";
url_ = url_.replace(/[?&]$/, "");
@@ -4854,7 +4858,7 @@ export interface TradingBotConfig {
flipPosition: boolean;
name: string;
riskManagement?: RiskManagement | null;
scenario?: LightScenario | null;
scenario: LightScenario;
scenarioName?: string | null;
maxPositionTimeHours?: number | null;
closeEarlyWhenProfitable?: boolean;
@@ -4919,13 +4923,13 @@ export enum RiskToleranceLevel {
export interface LightScenario {
name?: string | null;
indicators?: LightIndicator[] | null;
loopbackPeriod?: number | null;
lookbackPeriod: number;
}
export interface LightIndicator {
name?: string | null;
type?: IndicatorType;
signalType?: SignalType;
name: string;
type: IndicatorType;
signalType: SignalType;
minimumHistory?: number;
period?: number | null;
fastPeriods?: number | null;
@@ -5227,7 +5231,7 @@ export interface TradingBotConfigRequest {
export interface ScenarioRequest {
name: string;
indicators: IndicatorRequest[];
loopbackPeriod?: number | null;
lookbackPeriod?: number;
}
export interface IndicatorRequest {
@@ -5513,6 +5517,11 @@ export enum BotSortableColumn {
AgentName = "AgentName",
}
export enum SortDirection {
Asc = "Asc",
Desc = "Desc",
}
export interface CreateManualSignalRequest {
identifier?: string;
direction?: TradeDirection;
@@ -5551,7 +5560,7 @@ export interface Spotlight {
export interface Scenario {
name?: string | null;
indicators?: IndicatorBase[] | null;
loopbackPeriod?: number | null;
lookbackPeriod?: number;
user?: User | null;
}
@@ -5730,25 +5739,25 @@ export interface StrategyRoiPerformance {
}
export interface UserStrategyDetailsViewModel {
name?: string | null;
state?: BotStatus;
pnL?: number;
netPnL?: number;
roiPercentage?: number;
runtime?: Date | null;
totalRuntimeSeconds?: number;
lastStartTime?: Date | null;
name: string;
state: BotStatus;
pnL: number;
netPnL: number;
roiPercentage: number;
runtime: Date;
totalRuntimeSeconds: number;
lastStartTime: Date;
lastStopTime?: Date | null;
accumulatedRunTimeSeconds?: number;
winRate?: number;
totalVolumeTraded?: number;
volumeLast24H?: number;
wins?: number;
losses?: number;
positions?: PositionViewModel[] | null;
identifier?: string;
accumulatedRunTimeSeconds: number;
winRate: number;
totalVolumeTraded: number;
volumeLast24H: number;
wins: number;
losses: number;
positions: PositionViewModel[];
identifier: string;
walletBalances?: { [key: string]: number; } | null;
ticker?: Ticker;
ticker: Ticker;
masterAgentName?: string | null;
}

View File

@@ -355,7 +355,7 @@ export interface TradingBotConfig {
flipPosition: boolean;
name: string;
riskManagement?: RiskManagement | null;
scenario?: LightScenario | null;
scenario: LightScenario;
scenarioName?: string | null;
maxPositionTimeHours?: number | null;
closeEarlyWhenProfitable?: boolean;
@@ -420,13 +420,13 @@ export enum RiskToleranceLevel {
export interface LightScenario {
name?: string | null;
indicators?: LightIndicator[] | null;
loopbackPeriod?: number | null;
lookbackPeriod: number;
}
export interface LightIndicator {
name?: string | null;
type?: IndicatorType;
signalType?: SignalType;
name: string;
type: IndicatorType;
signalType: SignalType;
minimumHistory?: number;
period?: number | null;
fastPeriods?: number | null;
@@ -728,7 +728,7 @@ export interface TradingBotConfigRequest {
export interface ScenarioRequest {
name: string;
indicators: IndicatorRequest[];
loopbackPeriod?: number | null;
lookbackPeriod?: number;
}
export interface IndicatorRequest {
@@ -1014,6 +1014,11 @@ export enum BotSortableColumn {
AgentName = "AgentName",
}
export enum SortDirection {
Asc = "Asc",
Desc = "Desc",
}
export interface CreateManualSignalRequest {
identifier?: string;
direction?: TradeDirection;
@@ -1052,7 +1057,7 @@ export interface Spotlight {
export interface Scenario {
name?: string | null;
indicators?: IndicatorBase[] | null;
loopbackPeriod?: number | null;
lookbackPeriod?: number;
user?: User | null;
}
@@ -1231,25 +1236,25 @@ export interface StrategyRoiPerformance {
}
export interface UserStrategyDetailsViewModel {
name?: string | null;
state?: BotStatus;
pnL?: number;
netPnL?: number;
roiPercentage?: number;
runtime?: Date | null;
totalRuntimeSeconds?: number;
lastStartTime?: Date | null;
name: string;
state: BotStatus;
pnL: number;
netPnL: number;
roiPercentage: number;
runtime: Date;
totalRuntimeSeconds: number;
lastStartTime: Date;
lastStopTime?: Date | null;
accumulatedRunTimeSeconds?: number;
winRate?: number;
totalVolumeTraded?: number;
volumeLast24H?: number;
wins?: number;
losses?: number;
positions?: PositionViewModel[] | null;
identifier?: string;
accumulatedRunTimeSeconds: number;
winRate: number;
totalVolumeTraded: number;
volumeLast24H: number;
wins: number;
losses: number;
positions: PositionViewModel[];
identifier: string;
walletBalances?: { [key: string]: number; } | null;
ticker?: Ticker;
ticker: Ticker;
masterAgentName?: string | null;
}