From 8a8e9432e16fe824b9bbd44e2350769cae1c0ed8 Mon Sep 17 00:00:00 2001 From: delenius Date: Wed, 29 Jun 2016 13:49:02 -0700 Subject: [PATCH] Generate type annotations in JS model constructors Fixes #3207 --- .../codegen/languages/JavascriptClientCodegen.java | 8 ++++---- .../Javascript/partial_model_generic.mustache | 8 ++++---- .../client/petstore/javascript-promise/README.md | 14 +++++++------- .../petstore/javascript-promise/src/ApiClient.js | 4 ++-- .../javascript-promise/src/model/Animal.js | 2 +- .../petstore/javascript-promise/src/model/Cat.js | 2 +- .../petstore/javascript-promise/src/model/Dog.js | 2 +- .../javascript-promise/src/model/FormatTest.js | 8 ++++---- .../petstore/javascript-promise/src/model/Name.js | 2 +- .../petstore/javascript-promise/src/model/Pet.js | 4 ++-- samples/client/petstore/javascript/README.md | 14 +++++++------- .../client/petstore/javascript/src/ApiClient.js | 4 ++-- .../client/petstore/javascript/src/model/Animal.js | 2 +- .../client/petstore/javascript/src/model/Cat.js | 2 +- .../client/petstore/javascript/src/model/Dog.js | 2 +- .../petstore/javascript/src/model/FormatTest.js | 8 ++++---- .../client/petstore/javascript/src/model/Name.js | 2 +- .../client/petstore/javascript/src/model/Pet.js | 4 ++-- 18 files changed, 46 insertions(+), 46 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java index f2a7ffaecea..5af43e546d6 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java @@ -882,8 +882,8 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo // Collect each model's required property names in *document order*. // NOTE: can't use 'mandatory' as it is built from ModelImpl.getRequired(), which sorts names // alphabetically and in any case the document order of 'required' and 'properties' can differ. - List required = new ArrayList(); - List allRequired = supportsInheritance ? new ArrayList() : required; + List required = new ArrayList<>(); + List allRequired = supportsInheritance ? new ArrayList() : required; cm.vendorExtensions.put("x-required", required); cm.vendorExtensions.put("x-all-required", allRequired); @@ -893,14 +893,14 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo var.vendorExtensions.put("x-jsdoc-type", jsDocType); if (Boolean.TRUE.equals(var.required)) { - required.add(var.name); + required.add(var); } } if (supportsInheritance) { for (CodegenProperty var : cm.allVars) { if (Boolean.TRUE.equals(var.required)) { - allRequired.add(var.name); + allRequired.add(var); } } } diff --git a/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache b/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache index 43f8d4e543c..ad6e5977058 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache @@ -14,15 +14,15 @@ * @class{{#useInheritance}}{{#parent}} * @extends {{#parentModel}}module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{classname}}{{/parentModel}}{{^parentModel}}{{#vendorExtensions.x-isArray}}Array{{/vendorExtensions.x-isArray}}{{#vendorExtensions.x-isMap}}Object{{/vendorExtensions.x-isMap}}{{/parentModel}}{{/parent}}{{#interfaces}} * @implements module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{.}}{{/interfaces}}{{/useInheritance}}{{#vendorExtensions.x-all-required}} - * @param {{.}}{{/vendorExtensions.x-all-required}} + * @param {{name}} {{{vendorExtensions.x-jsdoc-type}}} {{#description}}{{{description}}}{{/description}}{{/vendorExtensions.x-all-required}} */ {{/emitJSDoc}} - var exports = function({{#vendorExtensions.x-all-required}}{{.}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-all-required}}) { + var exports = function({{#vendorExtensions.x-all-required}}{{name}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-all-required}}) { var _this = this; {{#parent}}{{^parentModel}}{{#vendorExtensions.x-isArray}} _this = new Array(); Object.setPrototypeOf(_this, exports); -{{/vendorExtensions.x-isArray}}{{/parentModel}}{{/parent}}{{#useInheritance}}{{#parentModel}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{.}}{{/vendorExtensions.x-all-required}});{{/parentModel}} -{{#interfaceModels}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{.}}{{/vendorExtensions.x-all-required}}); +{{/vendorExtensions.x-isArray}}{{/parentModel}}{{/parent}}{{#useInheritance}}{{#parentModel}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{name}}{{/vendorExtensions.x-all-required}});{{/parentModel}} +{{#interfaceModels}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{name}}{{/vendorExtensions.x-all-required}}); {{/interfaceModels}}{{/useInheritance}}{{#vars}}{{#required}} _this['{{baseName}}'] = {{name}};{{/required}} {{/vars}}{{#parent}}{{^parentModel}} return _this; {{/parentModel}}{{/parent}} }; diff --git a/samples/client/petstore/javascript-promise/README.md b/samples/client/petstore/javascript-promise/README.md index b84ba98b042..98ee1b5bd7d 100644 --- a/samples/client/petstore/javascript-promise/README.md +++ b/samples/client/petstore/javascript-promise/README.md @@ -6,7 +6,7 @@ This SDK is automatically generated by the [Swagger Codegen](https://github.com/ - API version: 1.0.0 - Package version: 1.0.0 -- Build date: 2016-06-29T21:42:46.755+08:00 +- Build date: 2016-06-29T13:53:04.955-07:00 - Build package: class io.swagger.codegen.languages.JavascriptClientCodegen ## Installation @@ -131,12 +131,6 @@ Class | Method | HTTP request | Description ## Documentation for Authorization -### api_key - -- **Type**: API key -- **API key parameter name**: api_key -- **Location**: HTTP header - ### petstore_auth - **Type**: OAuth @@ -146,3 +140,9 @@ Class | Method | HTTP request | Description - write:pets: modify pets in your account - read:pets: read your pets +### api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + diff --git a/samples/client/petstore/javascript-promise/src/ApiClient.js b/samples/client/petstore/javascript-promise/src/ApiClient.js index fd7aa902c22..5ed1bbffeb5 100644 --- a/samples/client/petstore/javascript-promise/src/ApiClient.js +++ b/samples/client/petstore/javascript-promise/src/ApiClient.js @@ -64,8 +64,8 @@ * @type {Array.} */ this.authentications = { - 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'}, - 'petstore_auth': {type: 'oauth2'} + 'petstore_auth': {type: 'oauth2'}, + 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'} }; /** * The default HTTP headers to be included for all API calls. diff --git a/samples/client/petstore/javascript-promise/src/model/Animal.js b/samples/client/petstore/javascript-promise/src/model/Animal.js index ff6fd24da4f..90a5595eb0a 100644 --- a/samples/client/petstore/javascript-promise/src/model/Animal.js +++ b/samples/client/petstore/javascript-promise/src/model/Animal.js @@ -52,7 +52,7 @@ * Constructs a new Animal. * @alias module:model/Animal * @class - * @param className + * @param className {String} */ var exports = function(className) { var _this = this; diff --git a/samples/client/petstore/javascript-promise/src/model/Cat.js b/samples/client/petstore/javascript-promise/src/model/Cat.js index d3200bda4e0..5b1084b8b5a 100644 --- a/samples/client/petstore/javascript-promise/src/model/Cat.js +++ b/samples/client/petstore/javascript-promise/src/model/Cat.js @@ -53,7 +53,7 @@ * @alias module:model/Cat * @class * @extends module:model/Animal - * @param className + * @param className {String} */ var exports = function(className) { var _this = this; diff --git a/samples/client/petstore/javascript-promise/src/model/Dog.js b/samples/client/petstore/javascript-promise/src/model/Dog.js index 24b764d6a37..bb0f247314e 100644 --- a/samples/client/petstore/javascript-promise/src/model/Dog.js +++ b/samples/client/petstore/javascript-promise/src/model/Dog.js @@ -53,7 +53,7 @@ * @alias module:model/Dog * @class * @extends module:model/Animal - * @param className + * @param className {String} */ var exports = function(className) { var _this = this; diff --git a/samples/client/petstore/javascript-promise/src/model/FormatTest.js b/samples/client/petstore/javascript-promise/src/model/FormatTest.js index be8f3e321de..4f6013f9d31 100644 --- a/samples/client/petstore/javascript-promise/src/model/FormatTest.js +++ b/samples/client/petstore/javascript-promise/src/model/FormatTest.js @@ -52,10 +52,10 @@ * Constructs a new FormatTest. * @alias module:model/FormatTest * @class - * @param _number - * @param _byte - * @param _date - * @param password + * @param _number {Number} + * @param _byte {String} + * @param _date {Date} + * @param password {String} */ var exports = function(_number, _byte, _date, password) { var _this = this; diff --git a/samples/client/petstore/javascript-promise/src/model/Name.js b/samples/client/petstore/javascript-promise/src/model/Name.js index e2b8eb2c3d1..8a50a92c49c 100644 --- a/samples/client/petstore/javascript-promise/src/model/Name.js +++ b/samples/client/petstore/javascript-promise/src/model/Name.js @@ -53,7 +53,7 @@ * Model for testing model name same as property name * @alias module:model/Name * @class - * @param name + * @param name {Integer} */ var exports = function(name) { var _this = this; diff --git a/samples/client/petstore/javascript-promise/src/model/Pet.js b/samples/client/petstore/javascript-promise/src/model/Pet.js index 7d2611325bc..5575c2087d5 100644 --- a/samples/client/petstore/javascript-promise/src/model/Pet.js +++ b/samples/client/petstore/javascript-promise/src/model/Pet.js @@ -52,8 +52,8 @@ * Constructs a new Pet. * @alias module:model/Pet * @class - * @param name - * @param photoUrls + * @param name {String} + * @param photoUrls {Array.} */ var exports = function(name, photoUrls) { var _this = this; diff --git a/samples/client/petstore/javascript/README.md b/samples/client/petstore/javascript/README.md index 07afbbc8ba2..5478a1c44df 100644 --- a/samples/client/petstore/javascript/README.md +++ b/samples/client/petstore/javascript/README.md @@ -6,7 +6,7 @@ This SDK is automatically generated by the [Swagger Codegen](https://github.com/ - API version: 1.0.0 - Package version: 1.0.0 -- Build date: 2016-06-29T21:39:55.793+08:00 +- Build date: 2016-06-29T13:53:00.479-07:00 - Build package: class io.swagger.codegen.languages.JavascriptClientCodegen ## Installation @@ -134,12 +134,6 @@ Class | Method | HTTP request | Description ## Documentation for Authorization -### api_key - -- **Type**: API key -- **API key parameter name**: api_key -- **Location**: HTTP header - ### petstore_auth - **Type**: OAuth @@ -149,3 +143,9 @@ Class | Method | HTTP request | Description - write:pets: modify pets in your account - read:pets: read your pets +### api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + diff --git a/samples/client/petstore/javascript/src/ApiClient.js b/samples/client/petstore/javascript/src/ApiClient.js index 8e52d408921..96f99848208 100644 --- a/samples/client/petstore/javascript/src/ApiClient.js +++ b/samples/client/petstore/javascript/src/ApiClient.js @@ -64,8 +64,8 @@ * @type {Array.} */ this.authentications = { - 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'}, - 'petstore_auth': {type: 'oauth2'} + 'petstore_auth': {type: 'oauth2'}, + 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'} }; /** * The default HTTP headers to be included for all API calls. diff --git a/samples/client/petstore/javascript/src/model/Animal.js b/samples/client/petstore/javascript/src/model/Animal.js index ff6fd24da4f..90a5595eb0a 100644 --- a/samples/client/petstore/javascript/src/model/Animal.js +++ b/samples/client/petstore/javascript/src/model/Animal.js @@ -52,7 +52,7 @@ * Constructs a new Animal. * @alias module:model/Animal * @class - * @param className + * @param className {String} */ var exports = function(className) { var _this = this; diff --git a/samples/client/petstore/javascript/src/model/Cat.js b/samples/client/petstore/javascript/src/model/Cat.js index d3200bda4e0..5b1084b8b5a 100644 --- a/samples/client/petstore/javascript/src/model/Cat.js +++ b/samples/client/petstore/javascript/src/model/Cat.js @@ -53,7 +53,7 @@ * @alias module:model/Cat * @class * @extends module:model/Animal - * @param className + * @param className {String} */ var exports = function(className) { var _this = this; diff --git a/samples/client/petstore/javascript/src/model/Dog.js b/samples/client/petstore/javascript/src/model/Dog.js index 24b764d6a37..bb0f247314e 100644 --- a/samples/client/petstore/javascript/src/model/Dog.js +++ b/samples/client/petstore/javascript/src/model/Dog.js @@ -53,7 +53,7 @@ * @alias module:model/Dog * @class * @extends module:model/Animal - * @param className + * @param className {String} */ var exports = function(className) { var _this = this; diff --git a/samples/client/petstore/javascript/src/model/FormatTest.js b/samples/client/petstore/javascript/src/model/FormatTest.js index be8f3e321de..4f6013f9d31 100644 --- a/samples/client/petstore/javascript/src/model/FormatTest.js +++ b/samples/client/petstore/javascript/src/model/FormatTest.js @@ -52,10 +52,10 @@ * Constructs a new FormatTest. * @alias module:model/FormatTest * @class - * @param _number - * @param _byte - * @param _date - * @param password + * @param _number {Number} + * @param _byte {String} + * @param _date {Date} + * @param password {String} */ var exports = function(_number, _byte, _date, password) { var _this = this; diff --git a/samples/client/petstore/javascript/src/model/Name.js b/samples/client/petstore/javascript/src/model/Name.js index e2b8eb2c3d1..8a50a92c49c 100644 --- a/samples/client/petstore/javascript/src/model/Name.js +++ b/samples/client/petstore/javascript/src/model/Name.js @@ -53,7 +53,7 @@ * Model for testing model name same as property name * @alias module:model/Name * @class - * @param name + * @param name {Integer} */ var exports = function(name) { var _this = this; diff --git a/samples/client/petstore/javascript/src/model/Pet.js b/samples/client/petstore/javascript/src/model/Pet.js index 7d2611325bc..5575c2087d5 100644 --- a/samples/client/petstore/javascript/src/model/Pet.js +++ b/samples/client/petstore/javascript/src/model/Pet.js @@ -52,8 +52,8 @@ * Constructs a new Pet. * @alias module:model/Pet * @class - * @param name - * @param photoUrls + * @param name {String} + * @param photoUrls {Array.} */ var exports = function(name, photoUrls) { var _this = this;