geekbot/Geekbot.net/WebApi/Controllers/Commands/CommandController.cs

41 lines
1.4 KiB
C#
Raw Normal View History

2018-05-14 02:33:49 +02:00
using System.Linq;
using Discord.Commands;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
namespace Geekbot.net.WebApi.Controllers.Commands
{
[EnableCors("AllowSpecificOrigin")]
public class CommandController : Controller
2018-05-14 02:33:49 +02:00
{
private readonly CommandService _commands;
public CommandController(CommandService commands)
2018-05-14 02:33:49 +02:00
{
_commands = commands;
}
[Route("/v1/commands")]
public IActionResult GetCommands()
{
var commandList = (from cmd in _commands.Commands
let cmdParamsObj = cmd.Parameters.Select(cmdParam => new CommandParamDto
{
Summary = cmdParam.Summary,
Default = cmdParam.DefaultValue?.ToString(),
2018-05-14 02:33:49 +02:00
Type = cmdParam.Type?.ToString()
})
.ToList()
let param = string.Join(", !", cmd.Aliases)
select new CommandDto
{
Name = cmd.Name,
Summary = cmd.Summary,
IsAdminCommand = param.Contains("admin") || param.Contains("owner"),
Aliases = cmd.Aliases.ToList(),
2018-05-14 02:33:49 +02:00
Params = cmdParamsObj
}).ToList();
return Ok(commandList.FindAll(e => !e.Aliases[0].StartsWith("owner")));
2018-05-14 02:33:49 +02:00
}
}
}