diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java index f6e0f35833e..b426ea6d07c 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java @@ -84,8 +84,8 @@ public class NancyFXServerCodegen extends AbstractCSharpCodegen { public void processOpts() { super.processOpts(); - apiPackage = packageName + ".Api"; - modelPackage = packageName + ".Models"; + apiPackage = packageName + ".Module"; + modelPackage = packageName + ".Model"; supportingFiles.add(new SupportingFile("ApiException.mustache", sourceFolder(), "ApiException.cs")); supportingFiles.add(new SupportingFile("RequestExtensions.mustache", sourceFolder(), "RequestExtensions.cs")); @@ -104,12 +104,12 @@ public class NancyFXServerCodegen extends AbstractCSharpCodegen { @Override public String apiFileFolder() { - return outputFolder + File.separator + sourceFolder() + File.separator + "Api"; + return outputFolder + File.separator + sourceFolder() + File.separator + "Module"; } @Override public String modelFileFolder() { - return outputFolder + File.separator + sourceFolder() + File.separator + "Models"; + return outputFolder + File.separator + sourceFolder() + File.separator + "Model"; } @Override @@ -128,4 +128,22 @@ public class NancyFXServerCodegen extends AbstractCSharpCodegen { // Converts, for example, PUT to HttpPut for controller attributes operation.httpMethod = operation.httpMethod.substring(0, 1) + operation.httpMethod.substring(1).toLowerCase(); } + + @Override + public String toEnumVarName(String name, String datatype) { + String enumName = sanitizeName(name); + + enumName = enumName.replaceFirst("^_", ""); + enumName = enumName.replaceFirst("_$", ""); + + enumName = camelize(enumName); + + LOGGER.info("toEnumVarName = " + enumName); + + if (enumName.matches("\\d.*")) { // starts with number + return "_" + enumName; + } else { + return enumName; + } + } } diff --git a/modules/swagger-codegen/src/main/resources/nancyfx/ApiException.mustache b/modules/swagger-codegen/src/main/resources/nancyfx/ApiException.mustache index 6bc23093a87..ce6787e2d7b 100644 --- a/modules/swagger-codegen/src/main/resources/nancyfx/ApiException.mustache +++ b/modules/swagger-codegen/src/main/resources/nancyfx/ApiException.mustache @@ -1,6 +1,6 @@ using System; -namespace {{packageName}}.Api +namespace {{packageName}}.Module { /// /// API Exception diff --git a/modules/swagger-codegen/src/main/resources/nancyfx/api.mustache b/modules/swagger-codegen/src/main/resources/nancyfx/api.mustache index 3c4ba5309b0..6360602423c 100644 --- a/modules/swagger-codegen/src/main/resources/nancyfx/api.mustache +++ b/modules/swagger-codegen/src/main/resources/nancyfx/api.mustache @@ -2,10 +2,13 @@ using Nancy; using Nancy.ModelBinding; using System.Collections.Generic; using Sharpility.Net; -using {{packageName}}.Models; +using {{packageName}}.Model; -namespace {{packageName}}.Api +namespace {{packageName}}.Module { {{#operations}} + {{#operation}}{{#allParams}}{{#isEnum}} + {{>innerEnum}} + {{/isEnum}}{{/allParams}}{{/operation}} public sealed class {{classname}}Module : NancyModule { diff --git a/modules/swagger-codegen/src/main/resources/nancyfx/innerEnum.mustache b/modules/swagger-codegen/src/main/resources/nancyfx/innerEnum.mustache new file mode 100644 index 00000000000..e856bdbae0d --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/nancyfx/innerEnum.mustache @@ -0,0 +1 @@ +public enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}} { {{#allowableValues}}{{#enumVars}}{{{name}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}} }; \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/nancyfx/model.mustache b/modules/swagger-codegen/src/main/resources/nancyfx/model.mustache index e0a965b6c9e..9f327cecdda 100644 --- a/modules/swagger-codegen/src/main/resources/nancyfx/model.mustache +++ b/modules/swagger-codegen/src/main/resources/nancyfx/model.mustache @@ -6,11 +6,13 @@ using Sharpility.Extensions; {{#models}} {{#model}} -namespace {{packageName}}.Models +namespace {{packageName}}.Model { public sealed class {{classname}}: {{#parent}}{{{parent}}}, {{/parent}} IEquatable<{{classname}}> { - {{#vars}} + {{#vars}}{{#isEnum}} + {{>innerEnum}} + {{/isEnum}}{{/vars}}{{#vars}} public {{{datatype}}} {{name}} { get; private set; } {{/vars}} @@ -64,6 +66,9 @@ namespace {{packageName}}.Models return !Equals(left, right); } + /// + /// Builder of {{classname}} model + /// public sealed class {{classname}}Builder { {{#vars}}