Skip to content

Commit 8ca8e44

Browse files
authored
Merge pull request #260 from iceljc/features/add-paged-plugins
add paged plugins
2 parents 653ed1f + 55c3c70 commit 8ca8e44

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace BotSharp.Abstraction.Plugins.Models
2+
{
3+
public class PluginFilter
4+
{
5+
public Pagination Pager { get; set; } = new Pagination();
6+
}
7+
}

src/Infrastructure/BotSharp.Core/Plugins/PluginLoader.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,18 @@ public List<PluginDef> GetPlugins(IServiceProvider services)
8989
return _plugins;
9090
}
9191

92+
public PagedItems<PluginDef> GetPagedPlugins(IServiceProvider services, PluginFilter filter)
93+
{
94+
var plugins = GetPlugins(services);
95+
var pager = filter?.Pager ?? new Pagination();
96+
97+
return new PagedItems<PluginDef>
98+
{
99+
Items = plugins.Skip(pager.Offset).Take(pager.Size),
100+
Count = plugins.Count()
101+
};
102+
}
103+
92104
public PluginDef UpdatePluginStatus(IServiceProvider services, string id, bool enable)
93105
{
94106
var plugin = _plugins.First(x => x.Id == id);

src/Infrastructure/BotSharp.OpenAPI/Controllers/PluginController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public PluginController(IServiceProvider services, PluginSettings settings)
1616
_settings = settings;
1717
}
1818

19-
[HttpGet("/plugins")]
20-
public List<PluginDef> GetPlugins()
19+
[HttpPost("/plugins")]
20+
public PagedItems<PluginDef> GetPlugins([FromBody] PluginFilter filter)
2121
{
2222
var loader = _services.GetRequiredService<PluginLoader>();
23-
return loader.GetPlugins(_services);
23+
return loader.GetPagedPlugins(_services, filter);
2424
}
2525

2626
[HttpGet("/plugin/menu")]

0 commit comments

Comments
 (0)