Moved classes out of Rest.cs into their own files.
This commit is contained in:
parent
b7fd7f1953
commit
4b694c0c31
5 changed files with 152 additions and 106 deletions
47
TShockAPI/Rest/RestCommand.cs
Normal file
47
TShockAPI/Rest/RestCommand.cs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Rests
|
||||
{
|
||||
public class RestCommand
|
||||
{
|
||||
public string Name { get; protected set; }
|
||||
public string UriTemplate { get; protected set; }
|
||||
public string UriVerbMatch { get; protected set; }
|
||||
public string[] UriVerbs { get; protected set; }
|
||||
public RestCommandD Callback { get; protected set; }
|
||||
public bool RequiesToken { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="name">Used for identification</param>
|
||||
/// <param name="uritemplate">Url template</param>
|
||||
/// <param name="callback">Rest Command callback</param>
|
||||
public RestCommand(string name, string uritemplate, RestCommandD callback)
|
||||
{
|
||||
Name = name;
|
||||
UriTemplate = uritemplate;
|
||||
UriVerbMatch = string.Join("([^/]*)", Regex.Split(uritemplate, "\\{[^\\{\\}]*\\}"));
|
||||
var matches = Regex.Matches(uritemplate, "\\{([^\\{\\}]*)\\}");
|
||||
UriVerbs = (from Match match in matches select match.Groups[1].Value).ToArray();
|
||||
Callback = callback;
|
||||
RequiesToken = true;
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="uritemplate">Url template</param>
|
||||
/// <param name="callback">Rest Command callback</param>
|
||||
public RestCommand(string uritemplate, RestCommandD callback)
|
||||
: this(string.Empty, uritemplate, callback)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public bool HasVerbs
|
||||
{
|
||||
get { return UriVerbs.Length > 0; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue