Modernize REST field dumper

Dumps to markdown, formatted for docsify instead of readme.io, and also
puts it in the right folder.
This commit is contained in:
Lucas Nicodemus 2022-10-19 00:45:35 -07:00
parent b6d4243d72
commit adbca6a99b
No known key found for this signature in database

View file

@ -1189,45 +1189,46 @@ namespace TShockAPI
if (descattr != null && !string.IsNullOrWhiteSpace(descattr.Description) && routeattr != null && !string.IsNullOrWhiteSpace(routeattr.Route)) if (descattr != null && !string.IsNullOrWhiteSpace(descattr.Description) && routeattr != null && !string.IsNullOrWhiteSpace(routeattr.Route))
{ {
sb.AppendLine("{0} ".SFormat(name)); sb.AppendLine("## {0}".SFormat(name));
sb.AppendLine("Description: {0} ".SFormat(descattr.Description)); sb.AppendLine("{0}".SFormat(descattr.Description));
var permission = method.GetCustomAttributes(false).Where(o => o is Permission); var permission = method.GetCustomAttributes(false).Where(o => o is Permission);
if (permission.Count() > 0) if (permission.Count() > 0)
{ {
sb.AppendLine("Permissions: {0}".SFormat(String.Join(", ", permission.Select(p => ((Permission)p).Name)))); sb.AppendLine("* **Permissions**: `{0}`".SFormat(String.Join(", ", permission.Select(p => ((Permission)p).Name))));
} }
else else
{ {
sb.AppendLine("No special permissions are required for this route."); sb.AppendLine("No special permissions are required for this route.");
} }
sb.AppendLine();
var verbs = method.GetCustomAttributes(false).Where(o => o is Verb); var verbs = method.GetCustomAttributes(false).Where(o => o is Verb);
if (verbs.Count() > 0) if (verbs.Count() > 0)
{ {
sb.AppendLine("Verbs:"); sb.AppendLine("**Verbs**:");
foreach (Verb verb in verbs) foreach (Verb verb in verbs)
{ {
sb.AppendLine("\t{0}({1}) [{2}] - {3}".SFormat(verb.Name, verb.Required ? "Required" : "Optional", verb.ArgumentType.Name, verb.Description)); sb.AppendLine("* `{0}` ({1}) `[{2}]` - {3}".SFormat(verb.Name, verb.Required ? "Required" : "Optional", verb.ArgumentType.Name, verb.Description));
} }
} }
sb.AppendLine();
var nouns = method.GetCustomAttributes(false).Where(o => o is Noun); var nouns = method.GetCustomAttributes(false).Where(o => o is Noun);
if (nouns.Count() > 0) if (nouns.Count() > 0)
{ {
sb.AppendLine("Nouns:"); sb.AppendLine("**Nouns**:");
foreach (Noun noun in nouns) foreach (Noun noun in nouns)
{ {
sb.AppendLine("\t{0}({1}) [{2}] - {3}".SFormat(noun.Name, noun.Required ? "Required" : "Optional", noun.ArgumentType.Name, noun.Description)); sb.AppendLine("* `{0}` ({1}) `[{2}]` - {3}".SFormat(noun.Name, noun.Required ? "Required" : "Optional", noun.ArgumentType.Name, noun.Description));
} }
} }
sb.AppendLine("Example Usage: {0}?{1}".SFormat(routeattr.Route, sb.AppendLine();
sb.AppendLine("**Example Usage**: `{0}?{1}`".SFormat(routeattr.Route,
string.Join("&", nouns.Select(n => String.Format("{0}={0}", ((Noun)n).Name))))); string.Join("&", nouns.Select(n => String.Format("{0}={0}", ((Noun)n).Name)))));
sb.AppendLine(); sb.AppendLine();
} }
} }
File.WriteAllText("RestDescriptions.txt", sb.ToString()); File.WriteAllText("docs/rest-fields.md", sb.ToString());
} }
private RestObject RestError(string message, string status = "400") private RestObject RestError(string message, string status = "400")