Add new REST endpoint:

- /v2/server/rawcmd

Takes parameters:
 - cmd

Commands have to start with /, some commands aren't written properly, and may not return any more output than a status code.
This commit is contained in:
Lucas Nicodemus 2012-01-02 22:14:30 -07:00
parent f04b9d7a6d
commit b8e4dffd74
4 changed files with 74 additions and 27 deletions

View file

@ -64,6 +64,7 @@ namespace TShockAPI
Rest.Register(new RestCommand("/v2/server/broadcast", Broadcast) { RequiresToken = true});
Rest.Register(new RestCommand("/v2/server/off", Off) {RequiresToken = true});
Rest.Register(new RestCommand("/v2/server/rawcmd", ServerCommand) {RequiresToken = true});
#region Deprecated Endpoints
Rest.Register(new RestCommand("/bans/read/{user}/info", BanInfo) { RequiresToken = true });
@ -82,6 +83,22 @@ namespace TShockAPI
#region RestServerMethods
private object ServerCommand(RestVerbs verbs, IParameterCollection parameters)
{
if (parameters["cmd"] != null && parameters["cmd"].Trim() != "")
{
TSRESTPlayer tr = new TSRESTPlayer();
RestObject ro = new RestObject("200");
Commands.HandleCommand(tr, parameters["cmd"]);
foreach (string s in tr.GetCommandOutput())
{
ro.Add("response", s);
}
return ro;
}
return new RestObject("500")["response"] = "Invalid cmd parameter passed to REST. Cowardly not running a blank command.";
}
private object Off(RestVerbs verbs, IParameterCollection parameters)
{
bool confirm;