Skip to content

Commit 8440585

Browse files
committed
Add Pagination ability to the Command
#114
1 parent 11cb877 commit 8440585

23 files changed

Lines changed: 133 additions & 7 deletions

src/FlowCtl/Commands/Config/ConfigCommand.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,21 @@ internal class ConfigCommand : BaseCommand<ConfigCommandOptions, ConfigCommandOp
1010
{
1111
public ConfigCommand() : base("config", Resources.Commands_Config_Description)
1212
{
13+
var pageOption = new Option<int?>(new[] { "-p", "--page" },
14+
description: Resources.Commands_FlowSynxPage);
15+
16+
var pageSizeOption = new Option<int?>(new[] { "-s", "--page-size" },
17+
description: Resources.Commands_FlowSynxPageSize);
18+
1319
var addressOption = new Option<string?>(new[] { "-a", "--address" },
1420
description: Resources.Commands_FlowSynxAddress);
1521

1622
var outputOption = new Option<OutputType>(new[] { "-o", "--output" },
1723
getDefaultValue: () => OutputType.Json,
1824
description: Resources.Commands_Output_Format);
1925

26+
AddOption(pageOption);
27+
AddOption(pageSizeOption);
2028
AddOption(addressOption);
2129
AddOption(outputOption);
2230

src/FlowCtl/Commands/Config/ConfigCommandOptions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ namespace FlowCtl.Commands.Config;
44

55
internal class ConfigCommandOptions : ICommandOptions
66
{
7+
public int? Page { get; set; }
8+
public int? PageSize { get; set; }
79
public string? Address { get; set; } = string.Empty;
810
public OutputType Output { get; set; } = OutputType.Json;
911
}

src/FlowCtl/Commands/Config/ConfigCommandOptionsHandler.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using FlowCtl.Core.Services.Logger;
33
using FlowCtl.Extensions;
44
using FlowSynx.Client;
5+
using FlowSynx.Client.Messages.Requests.Workflows;
56

67
namespace FlowCtl.Commands.Config;
78

@@ -40,7 +41,13 @@ private async Task Execute(ConfigCommandOptions options, CancellationToken cance
4041
_flowSynxClient.SetConnection(connection);
4142
}
4243

43-
var result = await _flowSynxClient.PluginConfig.ListAsync(cancellationToken);
44+
var request = new PluginConfigListRequest
45+
{
46+
Page = options.Page,
47+
PageSize = options.PageSize
48+
};
49+
50+
var result = await _flowSynxClient.PluginConfig.ListAsync(request, cancellationToken);
4451

4552
if (result.StatusCode != 200)
4653
throw new Exception(Resources.Commands_Error_DuringProcessingRequest);

src/FlowCtl/Commands/Logs/LogsCommand.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ public LogsCommand() : base("logs", Resources.Commands_Logs_Description)
2222
var exportPathOption = new Option<string?>(new[] { "-e", "--export-to" },
2323
description: Resources.Commands_Logs_ExportToOption);
2424

25+
var pageOption = new Option<int?>(new[] { "-p", "--page" },
26+
description: Resources.Commands_FlowSynxPage);
27+
28+
var pageSizeOption = new Option<int?>(new[] { "-s", "--page-size" },
29+
description: Resources.Commands_FlowSynxPageSize);
30+
2531
var addressOption = new Option<string?>(new[] { "-a", "--address" },
2632
description: Resources.Commands_FlowSynxAddress);
2733

@@ -34,6 +40,8 @@ public LogsCommand() : base("logs", Resources.Commands_Logs_Description)
3440
AddOption(toDateOption);
3541
AddOption(messageDateOption);
3642
AddOption(exportPathOption);
43+
AddOption(pageOption);
44+
AddOption(pageSizeOption);
3745
AddOption(addressOption);
3846
AddOption(outputOption);
3947
}

src/FlowCtl/Commands/Logs/LogsCommandOptions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ internal class LogsCommandOptions : ICommandOptions
99
public DateTime? ToDate { get; set; }
1010
public string? Message { get; set; }
1111
public string? ExportTo { get; set; }
12+
public int? Page { get; set; }
13+
public int? PageSize { get; set; }
1214
public string? Address { get; set; }
1315
public OutputType Output { get; set; } = OutputType.Json;
1416
}

src/FlowCtl/Commands/Logs/LogsCommandOptionsHandler.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ private async Task Execute(LogsCommandOptions options, CancellationToken cancell
4343
Level = options.Level,
4444
FromDate = options.FromDate,
4545
ToDate = options.ToDate,
46-
Message = options.Message
46+
Message = options.Message,
47+
Page = options.Page,
48+
PageSize = options.PageSize
4749
};
4850
var result = await _flowSynxClient.Logs.ListAsync(request, cancellationToken);
4951

src/FlowCtl/Commands/Plugins/PluginsCommand.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,21 @@ internal class PluginsCommand : BaseCommand<PluginsCommandOptions, PluginsComman
1111
{
1212
public PluginsCommand() : base("plugins", Resources.Commands_Plugins_Description)
1313
{
14+
var pageOption = new Option<int?>(new[] { "-p", "--page" },
15+
description: Resources.Commands_FlowSynxPage);
16+
17+
var pageSizeOption = new Option<int?>(new[] { "-s", "--page-size" },
18+
description: Resources.Commands_FlowSynxPageSize);
19+
1420
var addressOption = new Option<string?>(new[] { "-a", "--address" },
1521
description: Resources.Commands_FlowSynxAddress);
1622

1723
var outputOption = new Option<OutputType>(new[] { "-o", "--output" },
1824
getDefaultValue: () => OutputType.Json,
1925
description: Resources.Commands_Output_Format);
2026

27+
AddOption(pageOption);
28+
AddOption(pageSizeOption);
2129
AddOption(addressOption);
2230
AddOption(outputOption);
2331

src/FlowCtl/Commands/Plugins/PluginsCommandOptions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ namespace FlowCtl.Commands.Plugins;
44

55
internal class PluginsCommandOptions : ICommandOptions
66
{
7+
public int? Page { get; set; }
8+
public int? PageSize { get; set; }
79
public string? Address { get; set; } = string.Empty;
810
public OutputType Output { get; set; } = OutputType.Json;
911
}

src/FlowCtl/Commands/Plugins/PluginsCommandOptionsHandler.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using FlowCtl.Core.Services.Logger;
33
using FlowCtl.Extensions;
44
using FlowSynx.Client;
5+
using FlowSynx.Client.Messages.Requests.Workflows;
56

67
namespace FlowCtl.Commands.Plugins;
78

@@ -40,7 +41,13 @@ private async Task Execute(PluginsCommandOptions options, CancellationToken canc
4041
_flowSynxClient.SetConnection(connection);
4142
}
4243

43-
var result = await _flowSynxClient.Plugins.ListAsync(cancellationToken);
44+
var request = new PluginsListRequest
45+
{
46+
Page = options.Page,
47+
PageSize = options.PageSize
48+
};
49+
50+
var result = await _flowSynxClient.Plugins.ListAsync(request, cancellationToken);
4451

4552
if (result.StatusCode != 200)
4653
throw new Exception(Resources.Commands_Error_DuringProcessingRequest);

src/FlowCtl/Commands/Workflows/Executions/Approvals/WorkflowExecutionLogsCommandOptions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ internal class WorkflowExecutionPendingApprovalsCommandOptions : ICommandOptions
66
{
77
public required string WorkflowId { get; set; }
88
public required string ExecutionId { get; set; }
9+
public int? Page { get; set; }
10+
public int? PageSize { get; set; }
911
public string? Address { get; set; } = string.Empty;
1012
public OutputType Output { get; set; } = OutputType.Json;
1113
}

0 commit comments

Comments
 (0)