add paged plugins
This commit is contained in:
parent
653ed1f65f
commit
55c3c70893
|
|
@ -0,0 +1,7 @@
|
|||
namespace BotSharp.Abstraction.Plugins.Models
|
||||
{
|
||||
public class PluginFilter
|
||||
{
|
||||
public Pagination Pager { get; set; } = new Pagination();
|
||||
}
|
||||
}
|
||||
|
|
@ -89,6 +89,18 @@ public class PluginLoader
|
|||
return _plugins;
|
||||
}
|
||||
|
||||
public PagedItems<PluginDef> GetPagedPlugins(IServiceProvider services, PluginFilter filter)
|
||||
{
|
||||
var plugins = GetPlugins(services);
|
||||
var pager = filter?.Pager ?? new Pagination();
|
||||
|
||||
return new PagedItems<PluginDef>
|
||||
{
|
||||
Items = plugins.Skip(pager.Offset).Take(pager.Size),
|
||||
Count = plugins.Count()
|
||||
};
|
||||
}
|
||||
|
||||
public PluginDef UpdatePluginStatus(IServiceProvider services, string id, bool enable)
|
||||
{
|
||||
var plugin = _plugins.First(x => x.Id == id);
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@ public class PluginController : ControllerBase
|
|||
_settings = settings;
|
||||
}
|
||||
|
||||
[HttpGet("/plugins")]
|
||||
public List<PluginDef> GetPlugins()
|
||||
[HttpPost("/plugins")]
|
||||
public PagedItems<PluginDef> GetPlugins([FromBody] PluginFilter filter)
|
||||
{
|
||||
var loader = _services.GetRequiredService<PluginLoader>();
|
||||
return loader.GetPlugins(_services);
|
||||
return loader.GetPagedPlugins(_services, filter);
|
||||
}
|
||||
|
||||
[HttpGet("/plugin/menu")]
|
||||
|
|
|
|||
Loading…
Reference in a new issue