Fixed 'shank forgot how to assign variables to an array' error on several rest calls.

This commit is contained in:
Lucas Nicodemus 2012-01-02 22:52:23 -07:00
parent e8acdb0b96
commit d8e92e5ed0

View file

@ -96,7 +96,9 @@ namespace TShockAPI
} }
return ro; return ro;
} }
return new RestObject("500")["response"] = "Invalid cmd parameter passed to REST. Cowardly not running a blank command."; RestObject fail = new RestObject("400");
fail["response"] = "Missing or blank cmd parameter.";
return fail;
} }
private object Off(RestVerbs verbs, IParameterCollection parameters) private object Off(RestVerbs verbs, IParameterCollection parameters)
@ -105,14 +107,19 @@ namespace TShockAPI
bool.TryParse(parameters["confirm"], out confirm); bool.TryParse(parameters["confirm"], out confirm);
bool nosave; bool nosave;
bool.TryParse(parameters["nosave"], out nosave); bool.TryParse(parameters["nosave"], out nosave);
if (confirm == true) if (confirm == true)
{ {
if (!nosave) if (!nosave)
WorldGen.saveWorld(); WorldGen.saveWorld();
Netplay.disconnect = true; Netplay.disconnect = true;
return new RestObject("200")["response"] = "Server is shutting down."; RestObject reply = new RestObject("200");
reply["response"] = "The server is shutting down.";
return reply;
} }
return new RestObject("200")["response"] = "The server will shut down only if the parameter 'confirm' is set to true in this REST call. You will not recieve a reply."; RestObject fail = new RestObject("400");
fail["response"] = "Invalid/missing confirm switch, and/or missing nosave switch.";
return fail;
} }
private object Broadcast(RestVerbs verbs, IParameterCollection parameters) private object Broadcast(RestVerbs verbs, IParameterCollection parameters)
@ -120,9 +127,13 @@ namespace TShockAPI
if (parameters["msg"] != null && parameters["msg"].Trim() != "") if (parameters["msg"] != null && parameters["msg"].Trim() != "")
{ {
TShock.Utils.Broadcast(parameters["msg"]); TShock.Utils.Broadcast(parameters["msg"]);
return new RestObject("200")["response"] = "The message was broadcasted to all connected clients successfully."; RestObject reply = new RestObject("200");
reply["response"] = "The message was broadcasted successfully.";
return reply;
} }
return new RestObject("500")["response"] = "Invalid msg parameter passed to REST. Cowardly not broadcasting a blank message."; RestObject fail = new RestObject("400");
fail["response"] = "Broadcast failed.";
return fail;
} }
#endregion #endregion
@ -378,7 +389,9 @@ namespace TShockAPI
bool killFriendly; bool killFriendly;
if (!bool.TryParse(parameters["killfriendly"], out killFriendly)) if (!bool.TryParse(parameters["killfriendly"], out killFriendly))
{ {
return new RestObject("500")["response"] = "The given value for killfriendly wasn't a boolean value."; RestObject fail = new RestObject("400");
fail["response"] = "The given value for killfriendly wasn't a boolean value.";
return fail;
} }
if (killFriendly) if (killFriendly)
{ {
@ -394,7 +407,10 @@ namespace TShockAPI
killcount++; killcount++;
} }
} }
return new RestObject("200")["response"] = killcount + " NPCs have been killed.";
RestObject rj = new RestObject("200");
rj["response"] = killcount + " NPCs have been killed.";
return rj;
} }
private object WorldRead(RestVerbs verbs, IParameterCollection parameters) private object WorldRead(RestVerbs verbs, IParameterCollection parameters)
@ -622,46 +638,6 @@ namespace TShockAPI
#endregion #endregion
#region RestExampleMethods
public void RegisterExamples()
{
Rest.Register(new RestCommand("/HelloWorld/name/{username}", UserTest) {RequiresToken = false});
Rest.Register(new RestCommand("/wizard/{username}", Wizard) {RequiresToken = false});
}
//The Wizard example, for demonstrating the response convention:
private object Wizard(RestVerbs verbs, IParameterCollection parameters)
{
var returnBack = new Dictionary<string, string>();
returnBack.Add("status", "200"); //Keep this in everything, 200 = ok, etc. Standard http status codes.
returnBack.Add("error", "(If this failed, you would have a different status code and provide the error object.)");
//And only include this if the status isn't 200 or a failure
returnBack.Add("Verified Wizard", "You're a wizard, " + verbs["username"]);
//Outline any api calls and possible responses in some form of documentation somewhere
return returnBack;
}
//http://127.0.0.1:8080/HelloWorld/name/{username}?type=status
private object UserTest(RestVerbs verbs, IParameterCollection parameters)
{
var ret = new Dictionary<string, string>();
var type = parameters["type"];
if (type == null)
{
ret.Add("Error", "Invalid Type");
return ret;
}
if (type == "status")
{
ret.Add("Users", "Info here");
return ret;
}
return null;
}
#endregion
#region Deperecated endpoints #region Deperecated endpoints
private object UserUpdate(RestVerbs verbs, IParameterCollection parameters) private object UserUpdate(RestVerbs verbs, IParameterCollection parameters)