From 7893f759e008c0543a9667cc934a62a7862c6158 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 19 Jun 2017 00:07:27 +0800 Subject: [PATCH 01/33] fix JS es6 script template folder --- bin/javascript-es6-petstore.sh | 2 +- bin/javascript-promise-es6-petstore.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/javascript-es6-petstore.sh b/bin/javascript-es6-petstore.sh index 1844aeca0bb..939e51b9446 100755 --- a/bin/javascript-es6-petstore.sh +++ b/bin/javascript-es6-petstore.sh @@ -26,7 +26,7 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript \ +ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript-es6 \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript \ -o samples/client/petstore/javascript-es6 \ --additional-properties useEs6=true" diff --git a/bin/javascript-promise-es6-petstore.sh b/bin/javascript-promise-es6-petstore.sh index 177c3f5d89a..410d1c8e4d8 100755 --- a/bin/javascript-promise-es6-petstore.sh +++ b/bin/javascript-promise-es6-petstore.sh @@ -26,7 +26,7 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript \ +ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript-es6 \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript \ -o samples/client/petstore/javascript-promise-es6 \ --additional-properties useEs6=true \ From aa37b9747fd6665c6bfcdc474b00e6eb666866e6 Mon Sep 17 00:00:00 2001 From: Kevin Murphy Date: Sun, 18 Jun 2017 09:27:52 -0700 Subject: [PATCH 02/33] [javascript] Use arrow function with usePromises in ES6 ApiClient.js for superagent callback to preserve `this` context (#5814) --- .../resources/Javascript-es6/ApiClient.mustache | 2 +- .../javascript/src/ApiClient.js | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache index 22cd56bd12c..57dfc0d937f 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache @@ -449,7 +449,7 @@ export default class ApiClient { } {{#usePromises}}return new Promise((resolve, reject) => { - request.end(function(error, response) { + request.end((error, response) => { if (error) { reject(error); } else { diff --git a/samples/client/petstore-security-test/javascript/src/ApiClient.js b/samples/client/petstore-security-test/javascript/src/ApiClient.js index 4557fa86df5..b7eb8adcbdc 100644 --- a/samples/client/petstore-security-test/javascript/src/ApiClient.js +++ b/samples/client/petstore-security-test/javascript/src/ApiClient.js @@ -173,12 +173,15 @@ * @returns {Boolean} true if param represents a file. */ exports.prototype.isFileParam = function(param) { - // fs.ReadStream in Node.js (but not in runtime like browserify) - if (typeof window === 'undefined' && - typeof require === 'function' && - require('fs') && - param instanceof require('fs').ReadStream) { - return true; + // fs.ReadStream in Node.js and Electron (but not in runtime like browserify) + if (typeof require === 'function') { + var fs; + try { + fs = require('fs'); + } catch (err) {} + if (fs && fs.ReadStream && param instanceof fs.ReadStream) { + return true; + } } // Buffer in Node.js if (typeof Buffer === 'function' && param instanceof Buffer) { From 6fef7acf9f83058d4b42dcb0966b58d82c30f055 Mon Sep 17 00:00:00 2001 From: Kevin Murphy Date: Sun, 18 Jun 2017 09:28:12 -0700 Subject: [PATCH 03/33] [javascript] Fix usages of `exports` in generated ES6 code (#5835) --- .../resources/Javascript-es6/ApiClient.mustache | 14 +++++++------- .../Javascript-es6/partial_model_generic.mustache | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache index 57dfc0d937f..17e9000179d 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache @@ -347,7 +347,7 @@ export default class ApiClient { data = response.text; } - return exports.convertToType(data, returnType); + return ApiClient.convertToType(data, returnType); } {{#emitJSDoc}}{{^usePromises}}/** @@ -521,7 +521,7 @@ export default class ApiClient { case 'String': return String(data); case 'Date': - return this.parseDate(String(data)); + return ApiClient.parseDate(String(data)); case 'Blob': return data; default: @@ -536,7 +536,7 @@ export default class ApiClient { var itemType = type[0]; return data.map((item) => { - return exports.convertToType(item, itemType); + return ApiClient.convertToType(item, itemType); }); } else if (typeof type === 'object') { // for plain object type like: {'String': 'Integer'} @@ -552,8 +552,8 @@ export default class ApiClient { var result = {}; for (var k in data) { if (data.hasOwnProperty(k)) { - var key = exports.convertToType(k, keyType); - var value = exports.convertToType(data[k], valueType); + var key = ApiClient.convertToType(k, keyType); + var value = ApiClient.convertToType(data[k], valueType); result[key] = value; } } @@ -575,12 +575,12 @@ export default class ApiClient { if (Array.isArray(data)) { for (var i = 0; i < data.length; i++) { if (data.hasOwnProperty(i)) - obj[i] = exports.convertToType(data[i], itemType); + obj[i] = ApiClient.convertToType(data[i], itemType); } } else { for (var k in data) { if (data.hasOwnProperty(k)) - obj[k] = exports.convertToType(data[k], itemType); + obj[k] = ApiClient.convertToType(data[k], itemType); } } }; diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_generic.mustache b/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_generic.mustache index 7fbfebecf13..5ba893a4542 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_generic.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_generic.mustache @@ -20,7 +20,7 @@ export default class {{classname}} { constructor({{#vendorExtensions.x-all-required}}{{name}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-all-required}}) { {{#parent}}{{^parentModel}}{{#vendorExtensions.x-isArray}} this = new Array(); - Object.setPrototypeOf(this, exports);{{/vendorExtensions.x-isArray}}{{/parentModel}}{{/parent}} + Object.setPrototypeOf(this, {{classname}});{{/vendorExtensions.x-isArray}}{{/parentModel}}{{/parent}} {{#useInheritance}} {{#parentModel}}{{classname}}.call(this{{#vendorExtensions.x-all-required}}, {{name}}{{/vendorExtensions.x-all-required}});{{/parentModel}} @@ -41,7 +41,7 @@ export default class {{classname}} { */{{/emitJSDoc}} static constructFromObject(data, obj) { if (data){{! TODO: support polymorphism: discriminator property on data determines class to instantiate.}} { - obj = obj || new exports(); + obj = obj || new {{classname}}(); {{#parent}}{{^parentModel}}ApiClient.constructFromObject(data, obj, '{{vendorExtensions.x-itemType}}');{{/parentModel}} {{/parent}} From 3ad576a53d007d330d331dad0179ecdc542d7d5e Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 19 Jun 2017 01:21:22 +0800 Subject: [PATCH 04/33] update js es6 samples --- .../petstore/javascript-es6/docs/FakeApi.md | 89 +- .../petstore/javascript-es6/docs/PetApi.md | 126 +- .../petstore/javascript-es6/docs/StoreApi.md | 46 +- .../petstore/javascript-es6/docs/UserApi.md | 90 +- .../petstore/javascript-es6/package.json | 11 +- .../petstore/javascript-es6/src/ApiClient.js | 1076 +++++++++-------- .../javascript-es6/src/api/FakeApi.js | 203 ++-- .../petstore/javascript-es6/src/api/PetApi.js | 220 ++-- .../javascript-es6/src/api/StoreApi.js | 139 +-- .../javascript-es6/src/api/UserApi.js | 219 ++-- .../petstore/javascript-es6/src/index.js | 277 +++-- .../src/model/AdditionalPropertiesClass.js | 129 +- .../javascript-es6/src/model/Animal.js | 133 +- .../javascript-es6/src/model/AnimalFarm.js | 107 +- .../javascript-es6/src/model/ApiResponse.js | 144 ++- .../src/model/ArrayOfArrayOfNumberOnly.js | 114 +- .../src/model/ArrayOfNumberOnly.js | 114 +- .../javascript-es6/src/model/ArrayTest.js | 145 ++- .../src/model/Capitalization.js | 191 ++- .../petstore/javascript-es6/src/model/Cat.js | 121 +- .../javascript-es6/src/model/Category.js | 129 +- .../javascript-es6/src/model/ClassModel.js | 116 +- .../javascript-es6/src/model/Client.js | 114 +- .../petstore/javascript-es6/src/model/Dog.js | 121 +- .../javascript-es6/src/model/EnumArrays.js | 195 +-- .../javascript-es6/src/model/EnumClass.js | 94 +- .../javascript-es6/src/model/EnumTest.js | 276 ++--- .../javascript-es6/src/model/FormatTest.js | 302 +++-- .../src/model/HasOnlyReadOnly.js | 129 +- .../petstore/javascript-es6/src/model/List.js | 114 +- .../javascript-es6/src/model/MapTest.js | 166 +-- ...dPropertiesAndAdditionalPropertiesClass.js | 145 ++- .../src/model/Model200Response.js | 131 +- .../javascript-es6/src/model/ModelReturn.js | 116 +- .../petstore/javascript-es6/src/model/Name.js | 163 ++- .../javascript-es6/src/model/NumberOnly.js | 114 +- .../javascript-es6/src/model/Order.js | 237 ++-- .../javascript-es6/src/model/OuterBoolean.js | 99 +- .../src/model/OuterComposite.js | 147 ++- .../javascript-es6/src/model/OuterEnum.js | 94 +- .../javascript-es6/src/model/OuterNumber.js | 99 +- .../javascript-es6/src/model/OuterString.js | 99 +- .../petstore/javascript-es6/src/model/Pet.js | 241 ++-- .../javascript-es6/src/model/ReadOnlyFirst.js | 129 +- .../src/model/SpecialModelName.js | 114 +- .../petstore/javascript-es6/src/model/Tag.js | 129 +- .../petstore/javascript-es6/src/model/User.js | 221 ++-- .../javascript-promise-es6/docs/FakeApi.md | 82 +- .../javascript-promise-es6/docs/PetApi.md | 118 +- .../javascript-promise-es6/docs/StoreApi.md | 42 +- .../javascript-promise-es6/docs/UserApi.md | 82 +- .../javascript-promise-es6/package.json | 11 +- .../javascript-promise-es6/src/ApiClient.js | 1057 ++++++++-------- .../javascript-promise-es6/src/api/FakeApi.js | 217 ++-- .../javascript-promise-es6/src/api/PetApi.js | 236 ++-- .../src/api/StoreApi.js | 147 +-- .../javascript-promise-es6/src/api/UserApi.js | 235 ++-- .../javascript-promise-es6/src/index.js | 277 +++-- .../src/model/AdditionalPropertiesClass.js | 129 +- .../src/model/Animal.js | 133 +- .../src/model/AnimalFarm.js | 107 +- .../src/model/ApiResponse.js | 144 ++- .../src/model/ArrayOfArrayOfNumberOnly.js | 114 +- .../src/model/ArrayOfNumberOnly.js | 114 +- .../src/model/ArrayTest.js | 145 ++- .../src/model/Capitalization.js | 191 ++- .../javascript-promise-es6/src/model/Cat.js | 121 +- .../src/model/Category.js | 129 +- .../src/model/ClassModel.js | 116 +- .../src/model/Client.js | 114 +- .../javascript-promise-es6/src/model/Dog.js | 121 +- .../src/model/EnumArrays.js | 195 +-- .../src/model/EnumClass.js | 94 +- .../src/model/EnumTest.js | 276 ++--- .../src/model/FormatTest.js | 302 +++-- .../src/model/HasOnlyReadOnly.js | 129 +- .../javascript-promise-es6/src/model/List.js | 114 +- .../src/model/MapTest.js | 166 +-- ...dPropertiesAndAdditionalPropertiesClass.js | 145 ++- .../src/model/Model200Response.js | 131 +- .../src/model/ModelReturn.js | 116 +- .../javascript-promise-es6/src/model/Name.js | 163 ++- .../src/model/NumberOnly.js | 114 +- .../javascript-promise-es6/src/model/Order.js | 237 ++-- .../src/model/OuterBoolean.js | 99 +- .../src/model/OuterComposite.js | 147 ++- .../src/model/OuterEnum.js | 94 +- .../src/model/OuterNumber.js | 99 +- .../src/model/OuterString.js | 99 +- .../javascript-promise-es6/src/model/Pet.js | 241 ++-- .../src/model/ReadOnlyFirst.js | 129 +- .../src/model/SpecialModelName.js | 114 +- .../javascript-promise-es6/src/model/Tag.js | 129 +- .../javascript-promise-es6/src/model/User.js | 221 ++-- 94 files changed, 7631 insertions(+), 7833 deletions(-) diff --git a/samples/client/petstore/javascript-es6/docs/FakeApi.md b/samples/client/petstore/javascript-es6/docs/FakeApi.md index 85ac0b3d8a2..159eabe7058 100644 --- a/samples/client/petstore/javascript-es6/docs/FakeApi.md +++ b/samples/client/petstore/javascript-es6/docs/FakeApi.md @@ -23,22 +23,21 @@ Test serialization of outer boolean types ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterBoolean() // OuterBoolean | Input boolean as post body }; -var callback = function(error, data, response) { +apiInstance.fakeOuterBooleanSerialize(opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.fakeOuterBooleanSerialize(opts, callback); +}); ``` ### Parameters @@ -70,22 +69,21 @@ Test serialization of object with outer number type ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterComposite() // OuterComposite | Input composite as post body }; -var callback = function(error, data, response) { +apiInstance.fakeOuterCompositeSerialize(opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.fakeOuterCompositeSerialize(opts, callback); +}); ``` ### Parameters @@ -117,22 +115,21 @@ Test serialization of outer number types ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterNumber() // OuterNumber | Input number as post body }; -var callback = function(error, data, response) { +apiInstance.fakeOuterNumberSerialize(opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.fakeOuterNumberSerialize(opts, callback); +}); ``` ### Parameters @@ -164,22 +161,21 @@ Test serialization of outer string types ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterString() // OuterString | Input string as post body }; -var callback = function(error, data, response) { +apiInstance.fakeOuterStringSerialize(opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.fakeOuterStringSerialize(opts, callback); +}); ``` ### Parameters @@ -211,21 +207,20 @@ To test \"client\" model ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var body = new SwaggerPetstore.Client(); // Client | client model +let body = new SwaggerPetstore.Client(); // Client | client model -var callback = function(error, data, response) { +apiInstance.testClientModel(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.testClientModel(body, callback); +}); ``` ### Parameters @@ -257,25 +252,25 @@ Fake endpoint for testing various parameters 假端點 偽のエンドポイン ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure HTTP basic authorization: http_basic_test -var http_basic_test = defaultClient.authentications['http_basic_test']; +let http_basic_test = defaultClient.authentications['http_basic_test']; http_basic_test.username = 'YOUR USERNAME'; http_basic_test.password = 'YOUR PASSWORD'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var _number = 3.4; // Number | None +let _number = 3.4; // Number | None -var _double = 1.2; // Number | None +let _double = 1.2; // Number | None -var patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None +let patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None -var _byte = B; // Blob | None +let _byte = B; // Blob | None -var opts = { +let opts = { 'integer': 56, // Number | None 'int32': 56, // Number | None 'int64': 789, // Number | None @@ -288,14 +283,13 @@ var opts = { 'callback': "callback_example" // String | None }; -var callback = function(error, data, response) { +apiInstance.testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts, callback); +}); ``` ### Parameters @@ -340,11 +334,11 @@ To test enum parameters ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'enumFormStringArray': ["enumFormStringArray_example"], // [String] | Form parameter enum test (string array) 'enumFormString': "-efg", // String | Form parameter enum test (string) 'enumHeaderStringArray': ["enumHeaderStringArray_example"], // [String] | Header parameter enum test (string array) @@ -355,14 +349,13 @@ var opts = { 'enumQueryDouble': 1.2 // Number | Query parameter enum test (double) }; -var callback = function(error, data, response) { +apiInstance.testEnumParameters(opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.testEnumParameters(opts, callback); +}); ``` ### Parameters diff --git a/samples/client/petstore/javascript-es6/docs/PetApi.md b/samples/client/petstore/javascript-es6/docs/PetApi.md index fee9b40dbbc..9901993bf12 100644 --- a/samples/client/petstore/javascript-es6/docs/PetApi.md +++ b/samples/client/petstore/javascript-es6/docs/PetApi.md @@ -24,26 +24,25 @@ Add a new pet to the store ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store +let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store -var callback = function(error, data, response) { +apiInstance.addPet(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.addPet(body, callback); +}); ``` ### Parameters @@ -75,29 +74,28 @@ Deletes a pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | Pet id to delete +let petId = 789; // Number | Pet id to delete -var opts = { +let opts = { 'apiKey': "apiKey_example" // String | }; -var callback = function(error, data, response) { +apiInstance.deletePet(petId, opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.deletePet(petId, opts, callback); +}); ``` ### Parameters @@ -130,26 +128,25 @@ Multiple status values can be provided with comma separated strings ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var status = ["status_example"]; // [String] | Status values that need to be considered for filter +let status = ["status_example"]; // [String] | Status values that need to be considered for filter -var callback = function(error, data, response) { +apiInstance.findPetsByStatus(status, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.findPetsByStatus(status, callback); +}); ``` ### Parameters @@ -181,26 +178,25 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var tags = ["tags_example"]; // [String] | Tags to filter by +let tags = ["tags_example"]; // [String] | Tags to filter by -var callback = function(error, data, response) { +apiInstance.findPetsByTags(tags, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.findPetsByTags(tags, callback); +}); ``` ### Parameters @@ -232,28 +228,27 @@ Returns a single pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure API key authorization: api_key -var api_key = defaultClient.authentications['api_key']; +let api_key = defaultClient.authentications['api_key']; api_key.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key.apiKeyPrefix = 'Token'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | ID of pet to return +let petId = 789; // Number | ID of pet to return -var callback = function(error, data, response) { +apiInstance.getPetById(petId, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.getPetById(petId, callback); +}); ``` ### Parameters @@ -285,26 +280,25 @@ Update an existing pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store +let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store -var callback = function(error, data, response) { +apiInstance.updatePet(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.updatePet(body, callback); +}); ``` ### Parameters @@ -336,30 +330,29 @@ Updates a pet in the store with form data ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | ID of pet that needs to be updated +let petId = 789; // Number | ID of pet that needs to be updated -var opts = { +let opts = { 'name': "name_example", // String | Updated name of the pet 'status': "status_example" // String | Updated status of the pet }; -var callback = function(error, data, response) { +apiInstance.updatePetWithForm(petId, opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.updatePetWithForm(petId, opts, callback); +}); ``` ### Parameters @@ -393,30 +386,29 @@ uploads an image ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | ID of pet to update +let petId = 789; // Number | ID of pet to update -var opts = { +let opts = { 'additionalMetadata': "additionalMetadata_example", // String | Additional data to pass to server 'file': "/path/to/file.txt" // File | file to upload }; -var callback = function(error, data, response) { +apiInstance.uploadFile(petId, opts, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.uploadFile(petId, opts, callback); +}); ``` ### Parameters diff --git a/samples/client/petstore/javascript-es6/docs/StoreApi.md b/samples/client/petstore/javascript-es6/docs/StoreApi.md index 64d4658232d..2581dc0b7d3 100644 --- a/samples/client/petstore/javascript-es6/docs/StoreApi.md +++ b/samples/client/petstore/javascript-es6/docs/StoreApi.md @@ -20,21 +20,20 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var orderId = "orderId_example"; // String | ID of the order that needs to be deleted +let orderId = "orderId_example"; // String | ID of the order that needs to be deleted -var callback = function(error, data, response) { +apiInstance.deleteOrder(orderId, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.deleteOrder(orderId, callback); +}); ``` ### Parameters @@ -66,25 +65,24 @@ Returns a map of status codes to quantities ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure API key authorization: api_key -var api_key = defaultClient.authentications['api_key']; +let api_key = defaultClient.authentications['api_key']; api_key.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key.apiKeyPrefix = 'Token'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var callback = function(error, data, response) { +apiInstance.getInventory((error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.getInventory(callback); +}); ``` ### Parameters @@ -113,21 +111,20 @@ For valid response try integer IDs with value <= 5 or > 10. Other val ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var orderId = 789; // Number | ID of pet that needs to be fetched +let orderId = 789; // Number | ID of pet that needs to be fetched -var callback = function(error, data, response) { +apiInstance.getOrderById(orderId, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.getOrderById(orderId, callback); +}); ``` ### Parameters @@ -159,21 +156,20 @@ Place an order for a pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet +let body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet -var callback = function(error, data, response) { +apiInstance.placeOrder(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.placeOrder(body, callback); +}); ``` ### Parameters diff --git a/samples/client/petstore/javascript-es6/docs/UserApi.md b/samples/client/petstore/javascript-es6/docs/UserApi.md index d0ff1003b0c..d77e8413fd3 100644 --- a/samples/client/petstore/javascript-es6/docs/UserApi.md +++ b/samples/client/petstore/javascript-es6/docs/UserApi.md @@ -24,21 +24,20 @@ This can only be done by the logged in user. ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var body = new SwaggerPetstore.User(); // User | Created user object +let body = new SwaggerPetstore.User(); // User | Created user object -var callback = function(error, data, response) { +apiInstance.createUser(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.createUser(body, callback); +}); ``` ### Parameters @@ -70,21 +69,20 @@ Creates list of users with given input array ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var body = [new SwaggerPetstore.User()]; // [User] | List of user object +let body = [new SwaggerPetstore.User()]; // [User] | List of user object -var callback = function(error, data, response) { +apiInstance.createUsersWithArrayInput(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.createUsersWithArrayInput(body, callback); +}); ``` ### Parameters @@ -116,21 +114,20 @@ Creates list of users with given input array ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var body = [new SwaggerPetstore.User()]; // [User] | List of user object +let body = [new SwaggerPetstore.User()]; // [User] | List of user object -var callback = function(error, data, response) { +apiInstance.createUsersWithListInput(body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.createUsersWithListInput(body, callback); +}); ``` ### Parameters @@ -162,21 +159,20 @@ This can only be done by the logged in user. ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | The name that needs to be deleted +let username = "username_example"; // String | The name that needs to be deleted -var callback = function(error, data, response) { +apiInstance.deleteUser(username, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.deleteUser(username, callback); +}); ``` ### Parameters @@ -208,21 +204,20 @@ Get user by user name ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. +let username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. -var callback = function(error, data, response) { +apiInstance.getUserByName(username, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.getUserByName(username, callback); +}); ``` ### Parameters @@ -254,23 +249,22 @@ Logs user into the system ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | The user name for login +let username = "username_example"; // String | The user name for login -var password = "password_example"; // String | The password for login in clear text +let password = "password_example"; // String | The password for login in clear text -var callback = function(error, data, response) { +apiInstance.loginUser(username, password, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully. Returned data: ' + data); } -}; -apiInstance.loginUser(username, password, callback); +}); ``` ### Parameters @@ -303,18 +297,17 @@ Logs out current logged in user session ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var callback = function(error, data, response) { +apiInstance.logoutUser((error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.logoutUser(callback); +}); ``` ### Parameters @@ -343,23 +336,22 @@ This can only be done by the logged in user. ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | name that need to be deleted +let username = "username_example"; // String | name that need to be deleted -var body = new SwaggerPetstore.User(); // User | Updated user object +let body = new SwaggerPetstore.User(); // User | Updated user object -var callback = function(error, data, response) { +apiInstance.updateUser(username, body, (error, data, response) => { if (error) { console.error(error); } else { console.log('API called successfully.'); } -}; -apiInstance.updateUser(username, body, callback); +}); ``` ### Parameters diff --git a/samples/client/petstore/javascript-es6/package.json b/samples/client/petstore/javascript-es6/package.json index 881163c02f4..0332217891a 100644 --- a/samples/client/petstore/javascript-es6/package.json +++ b/samples/client/petstore/javascript-es6/package.json @@ -5,17 +5,22 @@ "license": "Unlicense", "main": "src/index.js", "scripts": { - "test": "./node_modules/mocha/bin/mocha --recursive" + "test": "mocha --compilers js:babel-core/register --recursive" }, "browser": { "fs": false }, "dependencies": { + "babel": "^6.23.0", + "babel-cli": "^6.24.1", "superagent": "3.5.2" }, "devDependencies": { + "babel-core": "6.18.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-stage-0": "^6.24.1", + "expect.js": "~0.3.1", "mocha": "~2.3.4", - "sinon": "1.17.3", - "expect.js": "~0.3.1" + "sinon": "1.17.3" } } diff --git a/samples/client/petstore/javascript-es6/src/ApiClient.js b/samples/client/petstore/javascript-es6/src/ApiClient.js index 5abc81c7dba..d47828d2a41 100644 --- a/samples/client/petstore/javascript-es6/src/ApiClient.js +++ b/samples/client/petstore/javascript-es6/src/ApiClient.js @@ -7,564 +7,570 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['superagent', 'querystring'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('superagent'), require('querystring')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import superagent from "superagent"; +import querystring from "querystring"; + +/** +* @module ApiClient +* @version 1.0.0 +*/ + +/** +* Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an +* application to use this class directly - the *Api and model classes provide the public API for the service. The +* contents of this file should be regarded as internal but are documented for completeness. +* @alias module:ApiClient +* @class +*/ +export default class ApiClient { + constructor() { + /** + * The base URL against which to resolve every API call's (relative) path. + * @type {String} + * @default http://petstore.swagger.io:80/v2 + */ + this.basePath = 'http://petstore.swagger.io:80/v2'.replace(/\/+$/, ''); + + /** + * The authentication methods to be included for all API calls. + * @type {Array.} + */ + this.authentications = { + 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'}, + 'http_basic_test': {type: 'basic'}, + 'petstore_auth': {type: 'oauth2'} + } + + /** + * The default HTTP headers to be included for all API calls. + * @type {Array.} + * @default {} + */ + this.defaultHeaders = {}; + + /** + * The default HTTP timeout for all API calls. + * @type {Number} + * @default 60000 + */ + this.timeout = 60000; + + /** + * If set to false an additional timestamp parameter is added to all API GET calls to + * prevent browser caching + * @type {Boolean} + * @default true + */ + this.cache = true; + + /** + * If set to true, the client will save the cookies from each server + * response, and return them in the next request. + * @default false + */ + this.enableCookies = false; + + /* + * Used to save and return cookies in a node.js (non-browser) setting, + * if this.enableCookies is set to true. + */ + if (typeof window === 'undefined') { + this.agent = new superagent.agent(); + } } - root.SwaggerPetstore.ApiClient = factory(root.superagent, root.querystring); - } -}(this, function(superagent, querystring) { - 'use strict'; - - /** - * @module ApiClient - * @version 1.0.0 - */ - - /** - * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an - * application to use this class directly - the *Api and model classes provide the public API for the service. The - * contents of this file should be regarded as internal but are documented for completeness. - * @alias module:ApiClient - * @class - */ - var exports = function() { - /** - * The base URL against which to resolve every API call's (relative) path. - * @type {String} - * @default http://petstore.swagger.io:80/v2 - */ - this.basePath = 'http://petstore.swagger.io:80/v2'.replace(/\/+$/, ''); /** - * The authentication methods to be included for all API calls. - * @type {Array.} - */ - this.authentications = { - 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'}, - 'http_basic_test': {type: 'basic'}, - 'petstore_auth': {type: 'oauth2'} + * Returns a string representation for an actual parameter. + * @param param The actual parameter. + * @returns {String} The string representation of param. + */ + paramToString(param) { + if (param == undefined || param == null) { + return ''; + } + if (param instanceof Date) { + return param.toJSON(); + } + + return param.toString(); + } + + /** + * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values. + * NOTE: query parameters are not handled here. + * @param {String} path The path to append to the base URL. + * @param {Object} pathParams The parameter values to append. + * @returns {String} The encoded path with parameter values substituted. + */ + buildUrl(path, pathParams) { + if (!path.match(/^\//)) { + path = '/' + path; + } + + var url = this.basePath + path; + url = url.replace(/\{([\w-]+)\}/g, (fullMatch, key) => { + var value; + if (pathParams.hasOwnProperty(key)) { + value = this.paramToString(pathParams[key]); + } else { + value = fullMatch; + } + + return encodeURIComponent(value); + }); + + return url; + } + + /** + * Checks whether the given content type represents JSON.
+ * JSON content type examples:
+ *
    + *
  • application/json
  • + *
  • application/json; charset=UTF8
  • + *
  • APPLICATION/JSON
  • + *
+ * @param {String} contentType The MIME content type to check. + * @returns {Boolean} true if contentType represents JSON, otherwise false. + */ + isJsonMime(contentType) { + return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i)); + } + + /** + * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first. + * @param {Array.} contentTypes + * @returns {String} The chosen content type, preferring JSON. + */ + jsonPreferredMime(contentTypes) { + for (var i = 0; i < contentTypes.length; i++) { + if (this.isJsonMime(contentTypes[i])) { + return contentTypes[i]; + } + } + + return contentTypes[0]; + } + + /** + * Checks whether the given parameter value represents file-like content. + * @param param The parameter to check. + * @returns {Boolean} true if param represents a file. + */ + isFileParam(param) { + // fs.ReadStream in Node.js and Electron (but not in runtime like browserify) + if (typeof require === 'function') { + let fs; + try { + fs = require('fs'); + } catch (err) {} + if (fs && fs.ReadStream && param instanceof fs.ReadStream) { + return true; + } + } + + // Buffer in Node.js + if (typeof Buffer === 'function' && param instanceof Buffer) { + return true; + } + + // Blob in browser + if (typeof Blob === 'function' && param instanceof Blob) { + return true; + } + + // File in browser (it seems File object is also instance of Blob, but keep this for safe) + if (typeof File === 'function' && param instanceof File) { + return true; + } + + return false; + } + + /** + * Normalizes parameter values: + *
    + *
  • remove nils
  • + *
  • keep files and arrays
  • + *
  • format to string with `paramToString` for other cases
  • + *
+ * @param {Object.} params The parameters as object properties. + * @returns {Object.} normalized parameters. + */ + normalizeParams(params) { + var newParams = {}; + for (var key in params) { + if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) { + var value = params[key]; + if (this.isFileParam(value) || Array.isArray(value)) { + newParams[key] = value; + } else { + newParams[key] = this.paramToString(value); + } + } + } + + return newParams; + } + + /** + * Enumeration of collection format separator strategies. + * @enum {String} + * @readonly + */ + static CollectionFormatEnum = { + /** + * Comma-separated values. Value: csv + * @const + */ + CSV: ',', + + /** + * Space-separated values. Value: ssv + * @const + */ + SSV: ' ', + + /** + * Tab-separated values. Value: tsv + * @const + */ + TSV: '\t', + + /** + * Pipe(|)-separated values. Value: pipes + * @const + */ + PIPES: '|', + + /** + * Native array. Value: multi + * @const + */ + MULTI: 'multi' }; - /** - * The default HTTP headers to be included for all API calls. - * @type {Array.} - * @default {} - */ - this.defaultHeaders = {}; /** - * The default HTTP timeout for all API calls. - * @type {Number} - * @default 60000 - */ - this.timeout = 60000; + * Builds a string representation of an array-type actual parameter, according to the given collection format. + * @param {Array} param An array parameter. + * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy. + * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns + * param as is if collectionFormat is multi. + */ + buildCollectionParam(param, collectionFormat) { + if (param == null) { + return null; + } + switch (collectionFormat) { + case 'csv': + return param.map(this.paramToString).join(','); + case 'ssv': + return param.map(this.paramToString).join(' '); + case 'tsv': + return param.map(this.paramToString).join('\t'); + case 'pipes': + return param.map(this.paramToString).join('|'); + case 'multi': + //return the array directly as SuperAgent will handle it as expected + return param.map(this.paramToString); + default: + throw new Error('Unknown collection format: ' + collectionFormat); + } + } /** - * If set to false an additional timestamp parameter is added to all API GET calls to - * prevent browser caching - * @type {Boolean} - * @default true - */ - this.cache = true; + * Applies authentication headers to the request. + * @param {Object} request The request object created by a superagent() call. + * @param {Array.} authNames An array of authentication method names. + */ + applyAuthToRequest(request, authNames) { + authNames.forEach((authName) => { + var auth = this.authentications[authName]; + switch (auth.type) { + case 'basic': + if (auth.username || auth.password) { + request.auth(auth.username || '', auth.password || ''); + } + + break; + case 'apiKey': + if (auth.apiKey) { + var data = {}; + if (auth.apiKeyPrefix) { + data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey; + } else { + data[auth.name] = auth.apiKey; + } + + if (auth['in'] === 'header') { + request.set(data); + } else { + request.query(data); + } + } + + break; + case 'oauth2': + if (auth.accessToken) { + request.set({'Authorization': 'Bearer ' + auth.accessToken}); + } + + break; + default: + throw new Error('Unknown authentication type: ' + auth.type); + } + }); + } /** - * If set to true, the client will save the cookies from each server - * response, and return them in the next request. - * @default false - */ - this.enableCookies = false; + * Deserializes an HTTP response body into a value of the specified type. + * @param {Object} response A SuperAgent response object. + * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types + * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To + * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: + * all properties on data will be converted to this type. + * @returns A value of the specified type. + */ + deserialize(response, returnType) { + if (response == null || returnType == null || response.status == 204) { + return null; + } - /* - * Used to save and return cookies in a node.js (non-browser) setting, - * if this.enableCookies is set to true. - */ - if (typeof window === 'undefined') { - this.agent = new superagent.agent(); + // Rely on SuperAgent for parsing response body. + // See http://visionmedia.github.io/superagent/#parsing-response-bodies + var data = response.body; + if (data == null || (typeof data === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length)) { + // SuperAgent does not always produce a body; use the unparsed response as a fallback + data = response.text; + } + + return ApiClient.convertToType(data, returnType); } - }; + /** + * Callback function to receive the result of the operation. + * @callback module:ApiClient~callApiCallback + * @param {String} error Error message, if any. + * @param data The data returned by the service call. + * @param {String} response The complete HTTP response. + */ - /** - * Returns a string representation for an actual parameter. - * @param param The actual parameter. - * @returns {String} The string representation of param. - */ - exports.prototype.paramToString = function(param) { - if (param == undefined || param == null) { - return ''; - } - if (param instanceof Date) { - return param.toJSON(); - } - return param.toString(); - }; + /** + * Invokes the REST service using the supplied settings and parameters. + * @param {String} path The base URL to invoke. + * @param {String} httpMethod The HTTP method to use. + * @param {Object.} pathParams A map of path parameters and their values. + * @param {Object.} queryParams A map of query parameters and their values. + * @param {Object.} headerParams A map of header parameters and their values. + * @param {Object.} formParams A map of form parameters and their values. + * @param {Object} bodyParam The value to pass as the request body. + * @param {Array.} authNames An array of authentication type names. + * @param {Array.} contentTypes An array of request MIME types. + * @param {Array.} accepts An array of acceptable response MIME types. + * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the + * constructor for a complex type. + * @param {module:ApiClient~callApiCallback} callback The callback function. + * @returns {Object} The SuperAgent request object. + */ + callApi(path, httpMethod, pathParams, + queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, + returnType, callback) { - /** - * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values. - * NOTE: query parameters are not handled here. - * @param {String} path The path to append to the base URL. - * @param {Object} pathParams The parameter values to append. - * @returns {String} The encoded path with parameter values substituted. - */ - exports.prototype.buildUrl = function(path, pathParams) { - if (!path.match(/^\//)) { - path = '/' + path; - } - var url = this.basePath + path; - var _this = this; - url = url.replace(/\{([\w-]+)\}/g, function(fullMatch, key) { - var value; - if (pathParams.hasOwnProperty(key)) { - value = _this.paramToString(pathParams[key]); - } else { - value = fullMatch; - } - return encodeURIComponent(value); - }); - return url; - }; + var url = this.buildUrl(path, pathParams); + var request = superagent(httpMethod, url); - /** - * Checks whether the given content type represents JSON.
- * JSON content type examples:
- *
    - *
  • application/json
  • - *
  • application/json; charset=UTF8
  • - *
  • APPLICATION/JSON
  • - *
- * @param {String} contentType The MIME content type to check. - * @returns {Boolean} true if contentType represents JSON, otherwise false. - */ - exports.prototype.isJsonMime = function(contentType) { - return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i)); - }; + // apply authentications + this.applyAuthToRequest(request, authNames); - /** - * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first. - * @param {Array.} contentTypes - * @returns {String} The chosen content type, preferring JSON. - */ - exports.prototype.jsonPreferredMime = function(contentTypes) { - for (var i = 0; i < contentTypes.length; i++) { - if (this.isJsonMime(contentTypes[i])) { - return contentTypes[i]; - } - } - return contentTypes[0]; - }; + // set query parameters + if (httpMethod.toUpperCase() === 'GET' && this.cache === false) { + queryParams['_'] = new Date().getTime(); + } - /** - * Checks whether the given parameter value represents file-like content. - * @param param The parameter to check. - * @returns {Boolean} true if param represents a file. - */ - exports.prototype.isFileParam = function(param) { - // fs.ReadStream in Node.js and Electron (but not in runtime like browserify) - if (typeof require === 'function') { - var fs; - try { - fs = require('fs'); - } catch (err) {} - if (fs && fs.ReadStream && param instanceof fs.ReadStream) { - return true; - } - } - // Buffer in Node.js - if (typeof Buffer === 'function' && param instanceof Buffer) { - return true; - } - // Blob in browser - if (typeof Blob === 'function' && param instanceof Blob) { - return true; - } - // File in browser (it seems File object is also instance of Blob, but keep this for safe) - if (typeof File === 'function' && param instanceof File) { - return true; - } - return false; - }; + request.query(this.normalizeParams(queryParams)); - /** - * Normalizes parameter values: - *
    - *
  • remove nils
  • - *
  • keep files and arrays
  • - *
  • format to string with `paramToString` for other cases
  • - *
- * @param {Object.} params The parameters as object properties. - * @returns {Object.} normalized parameters. - */ - exports.prototype.normalizeParams = function(params) { - var newParams = {}; - for (var key in params) { - if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) { - var value = params[key]; - if (this.isFileParam(value) || Array.isArray(value)) { - newParams[key] = value; + // set header parameters + request.set(this.defaultHeaders).set(this.normalizeParams(headerParams)); + + // set request timeout + request.timeout(this.timeout); + + var contentType = this.jsonPreferredMime(contentTypes); + if (contentType) { + // Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746) + if(contentType != 'multipart/form-data') { + request.type(contentType); + } + } else if (!request.header['Content-Type']) { + request.type('application/json'); + } + + if (contentType === 'application/x-www-form-urlencoded') { + request.send(querystring.stringify(this.normalizeParams(formParams))); + } else if (contentType == 'multipart/form-data') { + var _formParams = this.normalizeParams(formParams); + for (var key in _formParams) { + if (_formParams.hasOwnProperty(key)) { + if (this.isFileParam(_formParams[key])) { + // file field + request.attach(key, _formParams[key]); + } else { + request.field(key, _formParams[key]); + } + } + } + } else if (bodyParam) { + request.send(bodyParam); + } + + var accept = this.jsonPreferredMime(accepts); + if (accept) { + request.accept(accept); + } + + if (returnType === 'Blob') { + request.responseType('blob'); + } else if (returnType === 'String') { + request.responseType('string'); + } + + // Attach previously saved cookies, if enabled + if (this.enableCookies){ + if (typeof window === 'undefined') { + this.agent.attachCookies(request); + } + else { + request.withCredentials(); + } + } + + + + request.end((error, response) => { + if (callback) { + var data = null; + if (!error) { + try { + data = this.deserialize(response, returnType); + if (this.enableCookies && typeof window === 'undefined'){ + this.agent.saveCookies(response); + } + } catch (err) { + error = err; + } + } + + callback(error, data, response); + } + }); + + return request; + } + + /** + * Parses an ISO-8601 string representation of a date value. + * @param {String} str The date value as a string. + * @returns {Date} The parsed date object. + */ + static parseDate(str) { + return new Date(str.replace(/T/i, ' ')); + } + + /** + * Converts a value to the specified type. + * @param {(String|Object)} data The data to convert, as a string or object. + * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types + * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To + * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: + * all properties on data will be converted to this type. + * @returns An instance of the specified type or null or undefined if data is null or undefined. + */ + static convertToType(data, type) { + if (data === null || data === undefined) + return data + + switch (type) { + case 'Boolean': + return Boolean(data); + case 'Integer': + return parseInt(data, 10); + case 'Number': + return parseFloat(data); + case 'String': + return String(data); + case 'Date': + return ApiClient.parseDate(String(data)); + case 'Blob': + return data; + default: + if (type === Object) { + // generic object, return directly + return data; + } else if (typeof type === 'function') { + // for model type like: User + return type.constructFromObject(data); + } else if (Array.isArray(type)) { + // for array type like: ['String'] + var itemType = type[0]; + + return data.map((item) => { + return ApiClient.convertToType(item, itemType); + }); + } else if (typeof type === 'object') { + // for plain object type like: {'String': 'Integer'} + var keyType, valueType; + for (var k in type) { + if (type.hasOwnProperty(k)) { + keyType = k; + valueType = type[k]; + break; + } + } + + var result = {}; + for (var k in data) { + if (data.hasOwnProperty(k)) { + var key = ApiClient.convertToType(k, keyType); + var value = ApiClient.convertToType(data[k], valueType); + result[key] = value; + } + } + + return result; + } else { + // for unknown type, return the data directly + return data; + } + } + } + + /** + * Constructs a new map or array model from REST data. + * @param data {Object|Array} The REST data. + * @param obj {Object|Array} The target object or array. + */ + static constructFromObject(data, obj, itemType) { + if (Array.isArray(data)) { + for (var i = 0; i < data.length; i++) { + if (data.hasOwnProperty(i)) + obj[i] = ApiClient.convertToType(data[i], itemType); + } } else { - newParams[key] = this.paramToString(value); + for (var k in data) { + if (data.hasOwnProperty(k)) + obj[k] = ApiClient.convertToType(data[k], itemType); + } } - } - } - return newParams; - }; + }; +} - /** - * Enumeration of collection format separator strategies. - * @enum {String} - * @readonly - */ - exports.CollectionFormatEnum = { - /** - * Comma-separated values. Value: csv - * @const - */ - CSV: ',', - /** - * Space-separated values. Value: ssv - * @const - */ - SSV: ' ', - /** - * Tab-separated values. Value: tsv - * @const - */ - TSV: '\t', - /** - * Pipe(|)-separated values. Value: pipes - * @const - */ - PIPES: '|', - /** - * Native array. Value: multi - * @const - */ - MULTI: 'multi' - }; - - /** - * Builds a string representation of an array-type actual parameter, according to the given collection format. - * @param {Array} param An array parameter. - * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy. - * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns - * param as is if collectionFormat is multi. - */ - exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) { - if (param == null) { - return null; - } - switch (collectionFormat) { - case 'csv': - return param.map(this.paramToString).join(','); - case 'ssv': - return param.map(this.paramToString).join(' '); - case 'tsv': - return param.map(this.paramToString).join('\t'); - case 'pipes': - return param.map(this.paramToString).join('|'); - case 'multi': - // return the array directly as SuperAgent will handle it as expected - return param.map(this.paramToString); - default: - throw new Error('Unknown collection format: ' + collectionFormat); - } - }; - - /** - * Applies authentication headers to the request. - * @param {Object} request The request object created by a superagent() call. - * @param {Array.} authNames An array of authentication method names. - */ - exports.prototype.applyAuthToRequest = function(request, authNames) { - var _this = this; - authNames.forEach(function(authName) { - var auth = _this.authentications[authName]; - switch (auth.type) { - case 'basic': - if (auth.username || auth.password) { - request.auth(auth.username || '', auth.password || ''); - } - break; - case 'apiKey': - if (auth.apiKey) { - var data = {}; - if (auth.apiKeyPrefix) { - data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey; - } else { - data[auth.name] = auth.apiKey; - } - if (auth['in'] === 'header') { - request.set(data); - } else { - request.query(data); - } - } - break; - case 'oauth2': - if (auth.accessToken) { - request.set({'Authorization': 'Bearer ' + auth.accessToken}); - } - break; - default: - throw new Error('Unknown authentication type: ' + auth.type); - } - }); - }; - - /** - * Deserializes an HTTP response body into a value of the specified type. - * @param {Object} response A SuperAgent response object. - * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types - * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To - * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: - * all properties on data will be converted to this type. - * @returns A value of the specified type. - */ - exports.prototype.deserialize = function deserialize(response, returnType) { - if (response == null || returnType == null || response.status == 204) { - return null; - } - // Rely on SuperAgent for parsing response body. - // See http://visionmedia.github.io/superagent/#parsing-response-bodies - var data = response.body; - if (data == null || (typeof data === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length)) { - // SuperAgent does not always produce a body; use the unparsed response as a fallback - data = response.text; - } - return exports.convertToType(data, returnType); - }; - - /** - * Callback function to receive the result of the operation. - * @callback module:ApiClient~callApiCallback - * @param {String} error Error message, if any. - * @param data The data returned by the service call. - * @param {String} response The complete HTTP response. - */ - - /** - * Invokes the REST service using the supplied settings and parameters. - * @param {String} path The base URL to invoke. - * @param {String} httpMethod The HTTP method to use. - * @param {Object.} pathParams A map of path parameters and their values. - * @param {Object.} queryParams A map of query parameters and their values. - * @param {Object.} headerParams A map of header parameters and their values. - * @param {Object.} formParams A map of form parameters and their values. - * @param {Object} bodyParam The value to pass as the request body. - * @param {Array.} authNames An array of authentication type names. - * @param {Array.} contentTypes An array of request MIME types. - * @param {Array.} accepts An array of acceptable response MIME types. - * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the - * constructor for a complex type. - * @param {module:ApiClient~callApiCallback} callback The callback function. - * @returns {Object} The SuperAgent request object. - */ - exports.prototype.callApi = function callApi(path, httpMethod, pathParams, - queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, - returnType, callback) { - - var _this = this; - var url = this.buildUrl(path, pathParams); - var request = superagent(httpMethod, url); - - // apply authentications - this.applyAuthToRequest(request, authNames); - - // set query parameters - if (httpMethod.toUpperCase() === 'GET' && this.cache === false) { - queryParams['_'] = new Date().getTime(); - } - request.query(this.normalizeParams(queryParams)); - - // set header parameters - request.set(this.defaultHeaders).set(this.normalizeParams(headerParams)); - - // set request timeout - request.timeout(this.timeout); - - var contentType = this.jsonPreferredMime(contentTypes); - if (contentType) { - // Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746) - if(contentType != 'multipart/form-data') { - request.type(contentType); - } - } else if (!request.header['Content-Type']) { - request.type('application/json'); - } - - if (contentType === 'application/x-www-form-urlencoded') { - request.send(querystring.stringify(this.normalizeParams(formParams))); - } else if (contentType == 'multipart/form-data') { - var _formParams = this.normalizeParams(formParams); - for (var key in _formParams) { - if (_formParams.hasOwnProperty(key)) { - if (this.isFileParam(_formParams[key])) { - // file field - request.attach(key, _formParams[key]); - } else { - request.field(key, _formParams[key]); - } - } - } - } else if (bodyParam) { - request.send(bodyParam); - } - - var accept = this.jsonPreferredMime(accepts); - if (accept) { - request.accept(accept); - } - - if (returnType === 'Blob') { - request.responseType('blob'); - } else if (returnType === 'String') { - request.responseType('string'); - } - - // Attach previously saved cookies, if enabled - if (this.enableCookies){ - if (typeof window === 'undefined') { - this.agent.attachCookies(request); - } - else { - request.withCredentials(); - } - } - - - request.end(function(error, response) { - if (callback) { - var data = null; - if (!error) { - try { - data = _this.deserialize(response, returnType); - if (_this.enableCookies && typeof window === 'undefined'){ - _this.agent.saveCookies(response); - } - } catch (err) { - error = err; - } - } - callback(error, data, response); - } - }); - - return request; - }; - - /** - * Parses an ISO-8601 string representation of a date value. - * @param {String} str The date value as a string. - * @returns {Date} The parsed date object. - */ - exports.parseDate = function(str) { - return new Date(str.replace(/T/i, ' ')); - }; - - /** - * Converts a value to the specified type. - * @param {(String|Object)} data The data to convert, as a string or object. - * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types - * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To - * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: - * all properties on data will be converted to this type. - * @returns An instance of the specified type or null or undefined if data is null or undefined. - */ - exports.convertToType = function(data, type) { - if (data === null || data === undefined) - return data - - switch (type) { - case 'Boolean': - return Boolean(data); - case 'Integer': - return parseInt(data, 10); - case 'Number': - return parseFloat(data); - case 'String': - return String(data); - case 'Date': - return this.parseDate(String(data)); - case 'Blob': - return data; - default: - if (type === Object) { - // generic object, return directly - return data; - } else if (typeof type === 'function') { - // for model type like: User - return type.constructFromObject(data); - } else if (Array.isArray(type)) { - // for array type like: ['String'] - var itemType = type[0]; - return data.map(function(item) { - return exports.convertToType(item, itemType); - }); - } else if (typeof type === 'object') { - // for plain object type like: {'String': 'Integer'} - var keyType, valueType; - for (var k in type) { - if (type.hasOwnProperty(k)) { - keyType = k; - valueType = type[k]; - break; - } - } - var result = {}; - for (var k in data) { - if (data.hasOwnProperty(k)) { - var key = exports.convertToType(k, keyType); - var value = exports.convertToType(data[k], valueType); - result[key] = value; - } - } - return result; - } else { - // for unknown type, return the data directly - return data; - } - } - }; - - /** - * Constructs a new map or array model from REST data. - * @param data {Object|Array} The REST data. - * @param obj {Object|Array} The target object or array. - */ - exports.constructFromObject = function(data, obj, itemType) { - if (Array.isArray(data)) { - for (var i = 0; i < data.length; i++) { - if (data.hasOwnProperty(i)) - obj[i] = exports.convertToType(data[i], itemType); - } - } else { - for (var k in data) { - if (data.hasOwnProperty(k)) - obj[k] = exports.convertToType(data[k], itemType); - } - } - }; - - /** - * The default API client implementation. - * @type {module:ApiClient} - */ - exports.instance = new exports(); - - return exports; -})); +/** +* The default API client implementation. +* @type {module:ApiClient} +*/ +ApiClient.instance = new ApiClient(); diff --git a/samples/client/petstore/javascript-es6/src/api/FakeApi.js b/samples/client/petstore/javascript-es6/src/api/FakeApi.js index 579a8f87289..6c3d3384fa6 100644 --- a/samples/client/petstore/javascript-es6/src/api/FakeApi.js +++ b/samples/client/petstore/javascript-es6/src/api/FakeApi.js @@ -7,45 +7,35 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Client', 'model/OuterBoolean', 'model/OuterComposite', 'model/OuterNumber', 'model/OuterString'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/Client'), require('../model/OuterBoolean'), require('../model/OuterComposite'), require('../model/OuterNumber'), require('../model/OuterString')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import Client from '../model/Client'; +import OuterBoolean from '../model/OuterBoolean'; +import OuterComposite from '../model/OuterComposite'; +import OuterNumber from '../model/OuterNumber'; +import OuterString from '../model/OuterString'; + +/** +* Fake service. +* @module api/FakeApi +* @version 1.0.0 +*/ +export default class FakeApi { + + /** + * Constructs a new FakeApi. + * @alias module:api/FakeApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.FakeApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Client, root.SwaggerPetstore.OuterBoolean, root.SwaggerPetstore.OuterComposite, root.SwaggerPetstore.OuterNumber, root.SwaggerPetstore.OuterString); - } -}(this, function(ApiClient, Client, OuterBoolean, OuterComposite, OuterNumber, OuterString) { - 'use strict'; - - /** - * Fake service. - * @module api/FakeApi - * @version 1.0.0 - */ - - /** - * Constructs a new FakeApi. - * @alias module:api/FakeApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; /** @@ -63,24 +53,24 @@ * @param {module:api/FakeApi~fakeOuterBooleanSerializeCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/OuterBoolean} */ - this.fakeOuterBooleanSerialize = function(opts, callback) { + fakeOuterBooleanSerialize(opts, callback) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterBoolean; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterBoolean; return this.apiClient.callApi( '/fake/outer/boolean', 'POST', @@ -104,24 +94,24 @@ * @param {module:api/FakeApi~fakeOuterCompositeSerializeCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/OuterComposite} */ - this.fakeOuterCompositeSerialize = function(opts, callback) { + fakeOuterCompositeSerialize(opts, callback) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterComposite; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterComposite; return this.apiClient.callApi( '/fake/outer/composite', 'POST', @@ -145,24 +135,24 @@ * @param {module:api/FakeApi~fakeOuterNumberSerializeCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/OuterNumber} */ - this.fakeOuterNumberSerialize = function(opts, callback) { + fakeOuterNumberSerialize(opts, callback) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterNumber; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterNumber; return this.apiClient.callApi( '/fake/outer/number', 'POST', @@ -186,24 +176,24 @@ * @param {module:api/FakeApi~fakeOuterStringSerializeCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/OuterString} */ - this.fakeOuterStringSerialize = function(opts, callback) { + fakeOuterStringSerialize(opts, callback) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterString; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterString; return this.apiClient.callApi( '/fake/outer/string', 'POST', @@ -227,8 +217,8 @@ * @param {module:api/FakeApi~testClientModelCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Client} */ - this.testClientModel = function(body, callback) { - var postBody = body; + testClientModel(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -236,19 +226,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = ['application/json']; - var accepts = ['application/json']; - var returnType = Client; + let authNames = []; + let contentTypes = ['application/json']; + let accepts = ['application/json']; + let returnType = Client; return this.apiClient.callApi( '/fake', 'PATCH', @@ -285,9 +275,9 @@ * @param {String} opts.callback None * @param {module:api/FakeApi~testEndpointParametersCallback} callback The callback function, accepting three arguments: error, data, response */ - this.testEndpointParameters = function(_number, _double, patternWithoutDelimiter, _byte, opts, callback) { + testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts, callback) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter '_number' is set if (_number === undefined || _number === null) { @@ -310,13 +300,13 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { 'integer': opts['integer'], 'int32': opts['int32'], 'int64': opts['int64'], @@ -333,10 +323,10 @@ 'callback': opts['callback'] }; - var authNames = ['http_basic_test']; - var contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; - var accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; - var returnType = null; + let authNames = ['http_basic_test']; + let contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; + let accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; + let returnType = null; return this.apiClient.callApi( '/fake', 'POST', @@ -367,32 +357,32 @@ * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double) * @param {module:api/FakeApi~testEnumParametersCallback} callback The callback function, accepting three arguments: error, data, response */ - this.testEnumParameters = function(opts, callback) { + testEnumParameters(opts, callback) { opts = opts || {}; - var postBody = null; + let postBody = null; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'enum_query_string_array': this.apiClient.buildCollectionParam(opts['enumQueryStringArray'], 'csv'), 'enum_query_string': opts['enumQueryString'], 'enum_query_integer': opts['enumQueryInteger'] }; - var headerParams = { + let headerParams = { 'enum_header_string_array': opts['enumHeaderStringArray'], 'enum_header_string': opts['enumHeaderString'] }; - var formParams = { + let formParams = { 'enum_form_string_array': this.apiClient.buildCollectionParam(opts['enumFormStringArray'], 'csv'), 'enum_form_string': opts['enumFormString'], 'enum_query_double': opts['enumQueryDouble'] }; - var authNames = []; - var contentTypes = ['*/*']; - var accepts = ['*/*']; - var returnType = null; + let authNames = []; + let contentTypes = ['*/*']; + let accepts = ['*/*']; + let returnType = null; return this.apiClient.callApi( '/fake', 'GET', @@ -400,7 +390,6 @@ authNames, contentTypes, accepts, returnType, callback ); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-es6/src/api/PetApi.js b/samples/client/petstore/javascript-es6/src/api/PetApi.js index fecf45f6e30..e59d99bcc38 100644 --- a/samples/client/petstore/javascript-es6/src/api/PetApi.js +++ b/samples/client/petstore/javascript-es6/src/api/PetApi.js @@ -7,45 +7,32 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/ApiResponse', 'model/Pet'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/ApiResponse'), require('../model/Pet')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import ApiResponse from '../model/ApiResponse'; +import Pet from '../model/Pet'; + +/** +* Pet service. +* @module api/PetApi +* @version 1.0.0 +*/ +export default class PetApi { + + /** + * Constructs a new PetApi. + * @alias module:api/PetApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.PetApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.ApiResponse, root.SwaggerPetstore.Pet); - } -}(this, function(ApiClient, ApiResponse, Pet) { - 'use strict'; - - /** - * Pet service. - * @module api/PetApi - * @version 1.0.0 - */ - - /** - * Constructs a new PetApi. - * @alias module:api/PetApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; /** @@ -62,8 +49,8 @@ * @param {module:model/Pet} body Pet object that needs to be added to the store * @param {module:api/PetApi~addPetCallback} callback The callback function, accepting three arguments: error, data, response */ - this.addPet = function(body, callback) { - var postBody = body; + addPet(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -71,19 +58,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = ['application/json', 'application/xml']; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = ['application/json', 'application/xml']; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet', 'POST', @@ -108,9 +95,9 @@ * @param {String} opts.apiKey * @param {module:api/PetApi~deletePetCallback} callback The callback function, accepting three arguments: error, data, response */ - this.deletePet = function(petId, opts, callback) { + deletePet(petId, opts, callback) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -118,21 +105,21 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { 'api_key': opts['apiKey'] }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet/{petId}', 'DELETE', @@ -156,8 +143,8 @@ * @param {module:api/PetApi~findPetsByStatusCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link Array.} */ - this.findPetsByStatus = function(status, callback) { - var postBody = null; + findPetsByStatus(status, callback) { + let postBody = null; // verify the required parameter 'status' is set if (status === undefined || status === null) { @@ -165,20 +152,20 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'status': this.apiClient.buildCollectionParam(status, 'csv') }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = [Pet]; + let authNames = ['petstore_auth']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = [Pet]; return this.apiClient.callApi( '/pet/findByStatus', 'GET', @@ -202,8 +189,8 @@ * @param {module:api/PetApi~findPetsByTagsCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link Array.} */ - this.findPetsByTags = function(tags, callback) { - var postBody = null; + findPetsByTags(tags, callback) { + let postBody = null; // verify the required parameter 'tags' is set if (tags === undefined || tags === null) { @@ -211,20 +198,20 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'tags': this.apiClient.buildCollectionParam(tags, 'csv') }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = [Pet]; + let authNames = ['petstore_auth']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = [Pet]; return this.apiClient.callApi( '/pet/findByTags', 'GET', @@ -248,8 +235,8 @@ * @param {module:api/PetApi~getPetByIdCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Pet} */ - this.getPetById = function(petId, callback) { - var postBody = null; + getPetById(petId, callback) { + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -257,20 +244,20 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['api_key']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = Pet; + let authNames = ['api_key']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = Pet; return this.apiClient.callApi( '/pet/{petId}', 'GET', @@ -293,8 +280,8 @@ * @param {module:model/Pet} body Pet object that needs to be added to the store * @param {module:api/PetApi~updatePetCallback} callback The callback function, accepting three arguments: error, data, response */ - this.updatePet = function(body, callback) { - var postBody = body; + updatePet(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -302,19 +289,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = ['application/json', 'application/xml']; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = ['application/json', 'application/xml']; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet', 'PUT', @@ -340,9 +327,9 @@ * @param {String} opts.status Updated status of the pet * @param {module:api/PetApi~updatePetWithFormCallback} callback The callback function, accepting three arguments: error, data, response */ - this.updatePetWithForm = function(petId, opts, callback) { + updatePetWithForm(petId, opts, callback) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -350,22 +337,22 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { 'name': opts['name'], 'status': opts['status'] }; - var authNames = ['petstore_auth']; - var contentTypes = ['application/x-www-form-urlencoded']; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = ['application/x-www-form-urlencoded']; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet/{petId}', 'POST', @@ -392,9 +379,9 @@ * @param {module:api/PetApi~uploadFileCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/ApiResponse} */ - this.uploadFile = function(petId, opts, callback) { + uploadFile(petId, opts, callback) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -402,22 +389,22 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { 'additionalMetadata': opts['additionalMetadata'], 'file': opts['file'] }; - var authNames = ['petstore_auth']; - var contentTypes = ['multipart/form-data']; - var accepts = ['application/json']; - var returnType = ApiResponse; + let authNames = ['petstore_auth']; + let contentTypes = ['multipart/form-data']; + let accepts = ['application/json']; + let returnType = ApiResponse; return this.apiClient.callApi( '/pet/{petId}/uploadImage', 'POST', @@ -425,7 +412,6 @@ authNames, contentTypes, accepts, returnType, callback ); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-es6/src/api/StoreApi.js b/samples/client/petstore/javascript-es6/src/api/StoreApi.js index 1f7359be1ae..b70fc4c0883 100644 --- a/samples/client/petstore/javascript-es6/src/api/StoreApi.js +++ b/samples/client/petstore/javascript-es6/src/api/StoreApi.js @@ -7,45 +7,31 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Order'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/Order')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import Order from '../model/Order'; + +/** +* Store service. +* @module api/StoreApi +* @version 1.0.0 +*/ +export default class StoreApi { + + /** + * Constructs a new StoreApi. + * @alias module:api/StoreApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.StoreApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Order); - } -}(this, function(ApiClient, Order) { - 'use strict'; - - /** - * Store service. - * @module api/StoreApi - * @version 1.0.0 - */ - - /** - * Constructs a new StoreApi. - * @alias module:api/StoreApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; /** @@ -62,8 +48,8 @@ * @param {String} orderId ID of the order that needs to be deleted * @param {module:api/StoreApi~deleteOrderCallback} callback The callback function, accepting three arguments: error, data, response */ - this.deleteOrder = function(orderId, callback) { - var postBody = null; + deleteOrder(orderId, callback) { + let postBody = null; // verify the required parameter 'orderId' is set if (orderId === undefined || orderId === null) { @@ -71,20 +57,20 @@ } - var pathParams = { + let pathParams = { 'order_id': orderId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/store/order/{order_id}', 'DELETE', @@ -107,23 +93,23 @@ * @param {module:api/StoreApi~getInventoryCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link Object.} */ - this.getInventory = function(callback) { - var postBody = null; + getInventory(callback) { + let postBody = null; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['api_key']; - var contentTypes = []; - var accepts = ['application/json']; - var returnType = {'String': 'Number'}; + let authNames = ['api_key']; + let contentTypes = []; + let accepts = ['application/json']; + let returnType = {'String': 'Number'}; return this.apiClient.callApi( '/store/inventory', 'GET', @@ -147,8 +133,8 @@ * @param {module:api/StoreApi~getOrderByIdCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Order} */ - this.getOrderById = function(orderId, callback) { - var postBody = null; + getOrderById(orderId, callback) { + let postBody = null; // verify the required parameter 'orderId' is set if (orderId === undefined || orderId === null) { @@ -156,20 +142,20 @@ } - var pathParams = { + let pathParams = { 'order_id': orderId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = Order; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = Order; return this.apiClient.callApi( '/store/order/{order_id}', 'GET', @@ -193,8 +179,8 @@ * @param {module:api/StoreApi~placeOrderCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Order} */ - this.placeOrder = function(body, callback) { - var postBody = body; + placeOrder(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -202,19 +188,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = Order; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = Order; return this.apiClient.callApi( '/store/order', 'POST', @@ -222,7 +208,6 @@ authNames, contentTypes, accepts, returnType, callback ); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-es6/src/api/UserApi.js b/samples/client/petstore/javascript-es6/src/api/UserApi.js index a2195636b6c..54c9b110d7b 100644 --- a/samples/client/petstore/javascript-es6/src/api/UserApi.js +++ b/samples/client/petstore/javascript-es6/src/api/UserApi.js @@ -7,45 +7,31 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/User'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/User')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import User from '../model/User'; + +/** +* User service. +* @module api/UserApi +* @version 1.0.0 +*/ +export default class UserApi { + + /** + * Constructs a new UserApi. + * @alias module:api/UserApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.UserApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.User); - } -}(this, function(ApiClient, User) { - 'use strict'; - - /** - * User service. - * @module api/UserApi - * @version 1.0.0 - */ - - /** - * Constructs a new UserApi. - * @alias module:api/UserApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; /** @@ -62,8 +48,8 @@ * @param {module:model/User} body Created user object * @param {module:api/UserApi~createUserCallback} callback The callback function, accepting three arguments: error, data, response */ - this.createUser = function(body, callback) { - var postBody = body; + createUser(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -71,19 +57,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user', 'POST', @@ -106,8 +92,8 @@ * @param {Array.} body List of user object * @param {module:api/UserApi~createUsersWithArrayInputCallback} callback The callback function, accepting three arguments: error, data, response */ - this.createUsersWithArrayInput = function(body, callback) { - var postBody = body; + createUsersWithArrayInput(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -115,19 +101,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/createWithArray', 'POST', @@ -150,8 +136,8 @@ * @param {Array.} body List of user object * @param {module:api/UserApi~createUsersWithListInputCallback} callback The callback function, accepting three arguments: error, data, response */ - this.createUsersWithListInput = function(body, callback) { - var postBody = body; + createUsersWithListInput(body, callback) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -159,19 +145,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/createWithList', 'POST', @@ -194,8 +180,8 @@ * @param {String} username The name that needs to be deleted * @param {module:api/UserApi~deleteUserCallback} callback The callback function, accepting three arguments: error, data, response */ - this.deleteUser = function(username, callback) { - var postBody = null; + deleteUser(username, callback) { + let postBody = null; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -203,20 +189,20 @@ } - var pathParams = { + let pathParams = { 'username': username }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/{username}', 'DELETE', @@ -240,8 +226,8 @@ * @param {module:api/UserApi~getUserByNameCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/User} */ - this.getUserByName = function(username, callback) { - var postBody = null; + getUserByName(username, callback) { + let postBody = null; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -249,20 +235,20 @@ } - var pathParams = { + let pathParams = { 'username': username }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = User; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = User; return this.apiClient.callApi( '/user/{username}', 'GET', @@ -287,8 +273,8 @@ * @param {module:api/UserApi~loginUserCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link 'String'} */ - this.loginUser = function(username, password, callback) { - var postBody = null; + loginUser(username, password, callback) { + let postBody = null; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -301,21 +287,21 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'username': username, 'password': password }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = 'String'; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = 'String'; return this.apiClient.callApi( '/user/login', 'GET', @@ -337,23 +323,23 @@ * * @param {module:api/UserApi~logoutUserCallback} callback The callback function, accepting three arguments: error, data, response */ - this.logoutUser = function(callback) { - var postBody = null; + logoutUser(callback) { + let postBody = null; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/logout', 'GET', @@ -377,8 +363,8 @@ * @param {module:model/User} body Updated user object * @param {module:api/UserApi~updateUserCallback} callback The callback function, accepting three arguments: error, data, response */ - this.updateUser = function(username, body, callback) { - var postBody = body; + updateUser(username, body, callback) { + let postBody = body; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -391,20 +377,20 @@ } - var pathParams = { + let pathParams = { 'username': username }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/{username}', 'PUT', @@ -412,7 +398,6 @@ authNames, contentTypes, accepts, returnType, callback ); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-es6/src/index.js b/samples/client/petstore/javascript-es6/src/index.js index 6acae4aaaf4..3a016977a34 100644 --- a/samples/client/petstore/javascript-es6/src/index.js +++ b/samples/client/petstore/javascript-es6/src/index.js @@ -7,262 +7,329 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/AdditionalPropertiesClass', 'model/Animal', 'model/AnimalFarm', 'model/ApiResponse', 'model/ArrayOfArrayOfNumberOnly', 'model/ArrayOfNumberOnly', 'model/ArrayTest', 'model/Capitalization', 'model/Category', 'model/ClassModel', 'model/Client', 'model/EnumArrays', 'model/EnumClass', 'model/EnumTest', 'model/FormatTest', 'model/HasOnlyReadOnly', 'model/List', 'model/MapTest', 'model/MixedPropertiesAndAdditionalPropertiesClass', 'model/Model200Response', 'model/ModelReturn', 'model/Name', 'model/NumberOnly', 'model/Order', 'model/OuterBoolean', 'model/OuterComposite', 'model/OuterEnum', 'model/OuterNumber', 'model/OuterString', 'model/Pet', 'model/ReadOnlyFirst', 'model/SpecialModelName', 'model/Tag', 'model/User', 'model/Cat', 'model/Dog', 'api/FakeApi', 'api/PetApi', 'api/StoreApi', 'api/UserApi'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('./ApiClient'), require('./model/AdditionalPropertiesClass'), require('./model/Animal'), require('./model/AnimalFarm'), require('./model/ApiResponse'), require('./model/ArrayOfArrayOfNumberOnly'), require('./model/ArrayOfNumberOnly'), require('./model/ArrayTest'), require('./model/Capitalization'), require('./model/Category'), require('./model/ClassModel'), require('./model/Client'), require('./model/EnumArrays'), require('./model/EnumClass'), require('./model/EnumTest'), require('./model/FormatTest'), require('./model/HasOnlyReadOnly'), require('./model/List'), require('./model/MapTest'), require('./model/MixedPropertiesAndAdditionalPropertiesClass'), require('./model/Model200Response'), require('./model/ModelReturn'), require('./model/Name'), require('./model/NumberOnly'), require('./model/Order'), require('./model/OuterBoolean'), require('./model/OuterComposite'), require('./model/OuterEnum'), require('./model/OuterNumber'), require('./model/OuterString'), require('./model/Pet'), require('./model/ReadOnlyFirst'), require('./model/SpecialModelName'), require('./model/Tag'), require('./model/User'), require('./model/Cat'), require('./model/Dog'), require('./api/FakeApi'), require('./api/PetApi'), require('./api/StoreApi'), require('./api/UserApi')); - } -}(function(ApiClient, AdditionalPropertiesClass, Animal, AnimalFarm, ApiResponse, ArrayOfArrayOfNumberOnly, ArrayOfNumberOnly, ArrayTest, Capitalization, Category, ClassModel, Client, EnumArrays, EnumClass, EnumTest, FormatTest, HasOnlyReadOnly, List, MapTest, MixedPropertiesAndAdditionalPropertiesClass, Model200Response, ModelReturn, Name, NumberOnly, Order, OuterBoolean, OuterComposite, OuterEnum, OuterNumber, OuterString, Pet, ReadOnlyFirst, SpecialModelName, Tag, User, Cat, Dog, FakeApi, PetApi, StoreApi, UserApi) { - 'use strict'; - /** - * This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__.
- * The index module provides access to constructors for all the classes which comprise the public API. - *

- * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: - *

-   * var SwaggerPetstore = require('index'); // See note below*.
-   * var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-   * var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
-   * yyyModel.someProperty = 'someValue';
-   * ...
-   * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
-   * ...
-   * 
- * *NOTE: For a top-level AMD script, use require(['index'], function(){...}) - * and put the application logic within the callback function. - *

- *

- * A non-AMD browser application (discouraged) might do something like this: - *

-   * var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-   * var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
-   * yyyModel.someProperty = 'someValue';
-   * ...
-   * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
-   * ...
-   * 
- *

- * @module index - * @version 1.0.0 - */ - var exports = { +import ApiClient from './ApiClient'; +import AdditionalPropertiesClass from './model/AdditionalPropertiesClass'; +import Animal from './model/Animal'; +import AnimalFarm from './model/AnimalFarm'; +import ApiResponse from './model/ApiResponse'; +import ArrayOfArrayOfNumberOnly from './model/ArrayOfArrayOfNumberOnly'; +import ArrayOfNumberOnly from './model/ArrayOfNumberOnly'; +import ArrayTest from './model/ArrayTest'; +import Capitalization from './model/Capitalization'; +import Category from './model/Category'; +import ClassModel from './model/ClassModel'; +import Client from './model/Client'; +import EnumArrays from './model/EnumArrays'; +import EnumClass from './model/EnumClass'; +import EnumTest from './model/EnumTest'; +import FormatTest from './model/FormatTest'; +import HasOnlyReadOnly from './model/HasOnlyReadOnly'; +import List from './model/List'; +import MapTest from './model/MapTest'; +import MixedPropertiesAndAdditionalPropertiesClass from './model/MixedPropertiesAndAdditionalPropertiesClass'; +import Model200Response from './model/Model200Response'; +import ModelReturn from './model/ModelReturn'; +import Name from './model/Name'; +import NumberOnly from './model/NumberOnly'; +import Order from './model/Order'; +import OuterBoolean from './model/OuterBoolean'; +import OuterComposite from './model/OuterComposite'; +import OuterEnum from './model/OuterEnum'; +import OuterNumber from './model/OuterNumber'; +import OuterString from './model/OuterString'; +import Pet from './model/Pet'; +import ReadOnlyFirst from './model/ReadOnlyFirst'; +import SpecialModelName from './model/SpecialModelName'; +import Tag from './model/Tag'; +import User from './model/User'; +import Cat from './model/Cat'; +import Dog from './model/Dog'; +import FakeApi from './api/FakeApi'; +import PetApi from './api/PetApi'; +import StoreApi from './api/StoreApi'; +import UserApi from './api/UserApi'; + + +/** +* This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__.
+* The index module provides access to constructors for all the classes which comprise the public API. +*

+* An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: +*

+* var SwaggerPetstore = require('index'); // See note below*.
+* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* yyyModel.someProperty = 'someValue';
+* ...
+* var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
+* ...
+* 
+* *NOTE: For a top-level AMD script, use require(['index'], function(){...}) +* and put the application logic within the callback function. +*

+*

+* A non-AMD browser application (discouraged) might do something like this: +*

+* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* yyyModel.someProperty = 'someValue';
+* ...
+* var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
+* ...
+* 
+*

+* @module index +* @version 1.0.0 +*/ +export { /** * The ApiClient constructor. * @property {module:ApiClient} */ - ApiClient: ApiClient, + ApiClient, + /** * The AdditionalPropertiesClass model constructor. * @property {module:model/AdditionalPropertiesClass} */ - AdditionalPropertiesClass: AdditionalPropertiesClass, + AdditionalPropertiesClass, + /** * The Animal model constructor. * @property {module:model/Animal} */ - Animal: Animal, + Animal, + /** * The AnimalFarm model constructor. * @property {module:model/AnimalFarm} */ - AnimalFarm: AnimalFarm, + AnimalFarm, + /** * The ApiResponse model constructor. * @property {module:model/ApiResponse} */ - ApiResponse: ApiResponse, + ApiResponse, + /** * The ArrayOfArrayOfNumberOnly model constructor. * @property {module:model/ArrayOfArrayOfNumberOnly} */ - ArrayOfArrayOfNumberOnly: ArrayOfArrayOfNumberOnly, + ArrayOfArrayOfNumberOnly, + /** * The ArrayOfNumberOnly model constructor. * @property {module:model/ArrayOfNumberOnly} */ - ArrayOfNumberOnly: ArrayOfNumberOnly, + ArrayOfNumberOnly, + /** * The ArrayTest model constructor. * @property {module:model/ArrayTest} */ - ArrayTest: ArrayTest, + ArrayTest, + /** * The Capitalization model constructor. * @property {module:model/Capitalization} */ - Capitalization: Capitalization, + Capitalization, + /** * The Category model constructor. * @property {module:model/Category} */ - Category: Category, + Category, + /** * The ClassModel model constructor. * @property {module:model/ClassModel} */ - ClassModel: ClassModel, + ClassModel, + /** * The Client model constructor. * @property {module:model/Client} */ - Client: Client, + Client, + /** * The EnumArrays model constructor. * @property {module:model/EnumArrays} */ - EnumArrays: EnumArrays, + EnumArrays, + /** * The EnumClass model constructor. * @property {module:model/EnumClass} */ - EnumClass: EnumClass, + EnumClass, + /** * The EnumTest model constructor. * @property {module:model/EnumTest} */ - EnumTest: EnumTest, + EnumTest, + /** * The FormatTest model constructor. * @property {module:model/FormatTest} */ - FormatTest: FormatTest, + FormatTest, + /** * The HasOnlyReadOnly model constructor. * @property {module:model/HasOnlyReadOnly} */ - HasOnlyReadOnly: HasOnlyReadOnly, + HasOnlyReadOnly, + /** * The List model constructor. * @property {module:model/List} */ - List: List, + List, + /** * The MapTest model constructor. * @property {module:model/MapTest} */ - MapTest: MapTest, + MapTest, + /** * The MixedPropertiesAndAdditionalPropertiesClass model constructor. * @property {module:model/MixedPropertiesAndAdditionalPropertiesClass} */ - MixedPropertiesAndAdditionalPropertiesClass: MixedPropertiesAndAdditionalPropertiesClass, + MixedPropertiesAndAdditionalPropertiesClass, + /** * The Model200Response model constructor. * @property {module:model/Model200Response} */ - Model200Response: Model200Response, + Model200Response, + /** * The ModelReturn model constructor. * @property {module:model/ModelReturn} */ - ModelReturn: ModelReturn, + ModelReturn, + /** * The Name model constructor. * @property {module:model/Name} */ - Name: Name, + Name, + /** * The NumberOnly model constructor. * @property {module:model/NumberOnly} */ - NumberOnly: NumberOnly, + NumberOnly, + /** * The Order model constructor. * @property {module:model/Order} */ - Order: Order, + Order, + /** * The OuterBoolean model constructor. * @property {module:model/OuterBoolean} */ - OuterBoolean: OuterBoolean, + OuterBoolean, + /** * The OuterComposite model constructor. * @property {module:model/OuterComposite} */ - OuterComposite: OuterComposite, + OuterComposite, + /** * The OuterEnum model constructor. * @property {module:model/OuterEnum} */ - OuterEnum: OuterEnum, + OuterEnum, + /** * The OuterNumber model constructor. * @property {module:model/OuterNumber} */ - OuterNumber: OuterNumber, + OuterNumber, + /** * The OuterString model constructor. * @property {module:model/OuterString} */ - OuterString: OuterString, + OuterString, + /** * The Pet model constructor. * @property {module:model/Pet} */ - Pet: Pet, + Pet, + /** * The ReadOnlyFirst model constructor. * @property {module:model/ReadOnlyFirst} */ - ReadOnlyFirst: ReadOnlyFirst, + ReadOnlyFirst, + /** * The SpecialModelName model constructor. * @property {module:model/SpecialModelName} */ - SpecialModelName: SpecialModelName, + SpecialModelName, + /** * The Tag model constructor. * @property {module:model/Tag} */ - Tag: Tag, + Tag, + /** * The User model constructor. * @property {module:model/User} */ - User: User, + User, + /** * The Cat model constructor. * @property {module:model/Cat} */ - Cat: Cat, + Cat, + /** * The Dog model constructor. * @property {module:model/Dog} */ - Dog: Dog, - /** - * The FakeApi service constructor. - * @property {module:api/FakeApi} - */ - FakeApi: FakeApi, - /** - * The PetApi service constructor. - * @property {module:api/PetApi} - */ - PetApi: PetApi, - /** - * The StoreApi service constructor. - * @property {module:api/StoreApi} - */ - StoreApi: StoreApi, - /** - * The UserApi service constructor. - * @property {module:api/UserApi} - */ - UserApi: UserApi - }; + Dog, - return exports; -})); + /** + * The FakeApi service constructor. + * @property {module:api/FakeApi} + */ + FakeApi, + + /** + * The PetApi service constructor. + * @property {module:api/PetApi} + */ + PetApi, + + /** + * The StoreApi service constructor. + * @property {module:api/StoreApi} + */ + StoreApi, + + /** + * The UserApi service constructor. + * @property {module:api/UserApi} + */ + UserApi +}; diff --git a/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js b/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js index 2744647b18a..088cbb29b35 100644 --- a/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js +++ b/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The AdditionalPropertiesClass model module. +* @module model/AdditionalPropertiesClass +* @version 1.0.0 +*/ +export default class AdditionalPropertiesClass { + /** + * Constructs a new AdditionalPropertiesClass. + * @alias module:model/AdditionalPropertiesClass + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.AdditionalPropertiesClass = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a AdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/AdditionalPropertiesClass} obj Optional instance to populate. + * @return {module:model/AdditionalPropertiesClass} The populated AdditionalPropertiesClass instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new AdditionalPropertiesClass(); + + + - - /** - * The AdditionalPropertiesClass model module. - * @module model/AdditionalPropertiesClass - * @version 1.0.0 - */ - - /** - * Constructs a new AdditionalPropertiesClass. - * @alias module:model/AdditionalPropertiesClass - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a AdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/AdditionalPropertiesClass} obj Optional instance to populate. - * @return {module:model/AdditionalPropertiesClass} The populated AdditionalPropertiesClass instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('map_property')) { - obj['map_property'] = ApiClient.convertToType(data['map_property'], {'String': 'String'}); - } - if (data.hasOwnProperty('map_of_map_property')) { - obj['map_of_map_property'] = ApiClient.convertToType(data['map_of_map_property'], {'String': {'String': 'String'}}); - } + if (data.hasOwnProperty('map_property')) { + obj['map_property'] = ApiClient.convertToType(data['map_property'], {'String': 'String'}); + } + if (data.hasOwnProperty('map_of_map_property')) { + obj['map_of_map_property'] = ApiClient.convertToType(data['map_of_map_property'], {'String': {'String': 'String'}}); + } + } + return obj; } - return obj; - } - /** - * @member {Object.} map_property - */ - exports.prototype['map_property'] = undefined; - /** - * @member {Object.>} map_of_map_property - */ - exports.prototype['map_of_map_property'] = undefined; + /** + * @member {Object.} map_property + */ + map_property = undefined; + /** + * @member {Object.>} map_of_map_property + */ + map_of_map_property = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Animal.js b/samples/client/petstore/javascript-es6/src/model/Animal.js index 09119420568..b3fb1a63f32 100644 --- a/samples/client/petstore/javascript-es6/src/model/Animal.js +++ b/samples/client/petstore/javascript-es6/src/model/Animal.js @@ -7,86 +7,83 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Animal model module. +* @module model/Animal +* @version 1.0.0 +*/ +export default class Animal { + /** + * Constructs a new Animal. + * @alias module:model/Animal + * @class + * @param className {String} + */ + + constructor(className) { + + + + + + this['className'] = className; + + } - root.SwaggerPetstore.Animal = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Animal from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Animal} obj Optional instance to populate. + * @return {module:model/Animal} The populated Animal instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Animal(); + + + - - /** - * The Animal model module. - * @module model/Animal - * @version 1.0.0 - */ - - /** - * Constructs a new Animal. - * @alias module:model/Animal - * @class - * @param className {String} - */ - var exports = function(className) { - var _this = this; - - _this['className'] = className; - - }; - - /** - * Constructs a Animal from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Animal} obj Optional instance to populate. - * @return {module:model/Animal} The populated Animal instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('className')) { - obj['className'] = ApiClient.convertToType(data['className'], 'String'); - } - if (data.hasOwnProperty('color')) { - obj['color'] = ApiClient.convertToType(data['color'], 'String'); - } + if (data.hasOwnProperty('className')) { + obj['className'] = ApiClient.convertToType(data['className'], 'String'); + } + if (data.hasOwnProperty('color')) { + obj['color'] = ApiClient.convertToType(data['color'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} className - */ - exports.prototype['className'] = undefined; - /** - * @member {String} color - * @default 'red' - */ - exports.prototype['color'] = 'red'; + /** + * @member {String} className + */ + className = undefined; + /** + * @member {String} color + * @default 'red' + */ + color = 'red'; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js b/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js index 891009dab71..8dc9f00cadb 100644 --- a/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js +++ b/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js @@ -7,73 +7,72 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The AnimalFarm model module. +* @module model/AnimalFarm +* @version 1.0.0 +*/ +export default class AnimalFarm { + /** + * Constructs a new AnimalFarm. + * @alias module:model/AnimalFarm + * @class + * @extends Array + */ + + constructor() { + + this = new Array(); + Object.setPrototypeOf(this, AnimalFarm); + + + + + + + return this; } - root.SwaggerPetstore.AnimalFarm = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a AnimalFarm from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/AnimalFarm} obj Optional instance to populate. + * @return {module:model/AnimalFarm} The populated AnimalFarm instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new AnimalFarm(); + ApiClient.constructFromObject(data, obj, 'Animal'); + + - /** - * The AnimalFarm model module. - * @module model/AnimalFarm - * @version 1.0.0 - */ - - /** - * Constructs a new AnimalFarm. - * @alias module:model/AnimalFarm - * @class - * @extends Array - */ - var exports = function() { - var _this = this; - _this = new Array(); - Object.setPrototypeOf(_this, exports); - - return _this; - }; - - /** - * Constructs a AnimalFarm from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/AnimalFarm} obj Optional instance to populate. - * @return {module:model/AnimalFarm} The populated AnimalFarm instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - ApiClient.constructFromObject(data, obj, 'Animal'); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ApiResponse.js b/samples/client/petstore/javascript-es6/src/model/ApiResponse.js index 12e9e16275f..49ddd1ac27f 100644 --- a/samples/client/petstore/javascript-es6/src/model/ApiResponse.js +++ b/samples/client/petstore/javascript-es6/src/model/ApiResponse.js @@ -7,92 +7,88 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ApiResponse model module. +* @module model/ApiResponse +* @version 1.0.0 +*/ +export default class ApiResponse { + /** + * Constructs a new ApiResponse. + * @alias module:model/ApiResponse + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ApiResponse = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ApiResponse from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ApiResponse} obj Optional instance to populate. + * @return {module:model/ApiResponse} The populated ApiResponse instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ApiResponse(); + + + - - /** - * The ApiResponse model module. - * @module model/ApiResponse - * @version 1.0.0 - */ - - /** - * Constructs a new ApiResponse. - * @alias module:model/ApiResponse - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a ApiResponse from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ApiResponse} obj Optional instance to populate. - * @return {module:model/ApiResponse} The populated ApiResponse instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('code')) { - obj['code'] = ApiClient.convertToType(data['code'], 'Number'); - } - if (data.hasOwnProperty('type')) { - obj['type'] = ApiClient.convertToType(data['type'], 'String'); - } - if (data.hasOwnProperty('message')) { - obj['message'] = ApiClient.convertToType(data['message'], 'String'); - } + if (data.hasOwnProperty('code')) { + obj['code'] = ApiClient.convertToType(data['code'], 'Number'); + } + if (data.hasOwnProperty('type')) { + obj['type'] = ApiClient.convertToType(data['type'], 'String'); + } + if (data.hasOwnProperty('message')) { + obj['message'] = ApiClient.convertToType(data['message'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} code - */ - exports.prototype['code'] = undefined; - /** - * @member {String} type - */ - exports.prototype['type'] = undefined; - /** - * @member {String} message - */ - exports.prototype['message'] = undefined; + /** + * @member {Number} code + */ + code = undefined; + /** + * @member {String} type + */ + type = undefined; + /** + * @member {String} message + */ + message = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js b/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js index c620c19e667..1dfd4487c62 100644 --- a/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js +++ b/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ArrayOfArrayOfNumberOnly model module. +* @module model/ArrayOfArrayOfNumberOnly +* @version 1.0.0 +*/ +export default class ArrayOfArrayOfNumberOnly { + /** + * Constructs a new ArrayOfArrayOfNumberOnly. + * @alias module:model/ArrayOfArrayOfNumberOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ArrayOfArrayOfNumberOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ArrayOfArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ArrayOfArrayOfNumberOnly} obj Optional instance to populate. + * @return {module:model/ArrayOfArrayOfNumberOnly} The populated ArrayOfArrayOfNumberOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ArrayOfArrayOfNumberOnly(); + + + - - /** - * The ArrayOfArrayOfNumberOnly model module. - * @module model/ArrayOfArrayOfNumberOnly - * @version 1.0.0 - */ - - /** - * Constructs a new ArrayOfArrayOfNumberOnly. - * @alias module:model/ArrayOfArrayOfNumberOnly - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ArrayOfArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ArrayOfArrayOfNumberOnly} obj Optional instance to populate. - * @return {module:model/ArrayOfArrayOfNumberOnly} The populated ArrayOfArrayOfNumberOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('ArrayArrayNumber')) { - obj['ArrayArrayNumber'] = ApiClient.convertToType(data['ArrayArrayNumber'], [['Number']]); - } + if (data.hasOwnProperty('ArrayArrayNumber')) { + obj['ArrayArrayNumber'] = ApiClient.convertToType(data['ArrayArrayNumber'], [['Number']]); + } + } + return obj; } - return obj; - } - /** - * @member {Array.>} ArrayArrayNumber - */ - exports.prototype['ArrayArrayNumber'] = undefined; + /** + * @member {Array.>} ArrayArrayNumber + */ + ArrayArrayNumber = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js b/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js index 66980b9b8d1..379a19ba3ff 100644 --- a/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js +++ b/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ArrayOfNumberOnly model module. +* @module model/ArrayOfNumberOnly +* @version 1.0.0 +*/ +export default class ArrayOfNumberOnly { + /** + * Constructs a new ArrayOfNumberOnly. + * @alias module:model/ArrayOfNumberOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ArrayOfNumberOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ArrayOfNumberOnly} obj Optional instance to populate. + * @return {module:model/ArrayOfNumberOnly} The populated ArrayOfNumberOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ArrayOfNumberOnly(); + + + - - /** - * The ArrayOfNumberOnly model module. - * @module model/ArrayOfNumberOnly - * @version 1.0.0 - */ - - /** - * Constructs a new ArrayOfNumberOnly. - * @alias module:model/ArrayOfNumberOnly - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ArrayOfNumberOnly} obj Optional instance to populate. - * @return {module:model/ArrayOfNumberOnly} The populated ArrayOfNumberOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('ArrayNumber')) { - obj['ArrayNumber'] = ApiClient.convertToType(data['ArrayNumber'], ['Number']); - } + if (data.hasOwnProperty('ArrayNumber')) { + obj['ArrayNumber'] = ApiClient.convertToType(data['ArrayNumber'], ['Number']); + } + } + return obj; } - return obj; - } - /** - * @member {Array.} ArrayNumber - */ - exports.prototype['ArrayNumber'] = undefined; + /** + * @member {Array.} ArrayNumber + */ + ArrayNumber = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ArrayTest.js b/samples/client/petstore/javascript-es6/src/model/ArrayTest.js index 2fb4ecb6c24..58e9ac58840 100644 --- a/samples/client/petstore/javascript-es6/src/model/ArrayTest.js +++ b/samples/client/petstore/javascript-es6/src/model/ArrayTest.js @@ -7,92 +7,89 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/ReadOnlyFirst'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./ReadOnlyFirst')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import ReadOnlyFirst from './ReadOnlyFirst'; + + + + + +/** +* The ArrayTest model module. +* @module model/ArrayTest +* @version 1.0.0 +*/ +export default class ArrayTest { + /** + * Constructs a new ArrayTest. + * @alias module:model/ArrayTest + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ArrayTest = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.ReadOnlyFirst); - } -}(this, function(ApiClient, ReadOnlyFirst) { - 'use strict'; + /** + * Constructs a ArrayTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ArrayTest} obj Optional instance to populate. + * @return {module:model/ArrayTest} The populated ArrayTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ArrayTest(); + + + - - /** - * The ArrayTest model module. - * @module model/ArrayTest - * @version 1.0.0 - */ - - /** - * Constructs a new ArrayTest. - * @alias module:model/ArrayTest - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a ArrayTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ArrayTest} obj Optional instance to populate. - * @return {module:model/ArrayTest} The populated ArrayTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('array_of_string')) { - obj['array_of_string'] = ApiClient.convertToType(data['array_of_string'], ['String']); - } - if (data.hasOwnProperty('array_array_of_integer')) { - obj['array_array_of_integer'] = ApiClient.convertToType(data['array_array_of_integer'], [['Number']]); - } - if (data.hasOwnProperty('array_array_of_model')) { - obj['array_array_of_model'] = ApiClient.convertToType(data['array_array_of_model'], [[ReadOnlyFirst]]); - } + if (data.hasOwnProperty('array_of_string')) { + obj['array_of_string'] = ApiClient.convertToType(data['array_of_string'], ['String']); + } + if (data.hasOwnProperty('array_array_of_integer')) { + obj['array_array_of_integer'] = ApiClient.convertToType(data['array_array_of_integer'], [['Number']]); + } + if (data.hasOwnProperty('array_array_of_model')) { + obj['array_array_of_model'] = ApiClient.convertToType(data['array_array_of_model'], [[ReadOnlyFirst]]); + } + } + return obj; } - return obj; - } - /** - * @member {Array.} array_of_string - */ - exports.prototype['array_of_string'] = undefined; - /** - * @member {Array.>} array_array_of_integer - */ - exports.prototype['array_array_of_integer'] = undefined; - /** - * @member {Array.>} array_array_of_model - */ - exports.prototype['array_array_of_model'] = undefined; + /** + * @member {Array.} array_of_string + */ + array_of_string = undefined; + /** + * @member {Array.>} array_array_of_integer + */ + array_array_of_integer = undefined; + /** + * @member {Array.>} array_array_of_model + */ + array_array_of_model = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Capitalization.js b/samples/client/petstore/javascript-es6/src/model/Capitalization.js index 54154d396f8..12f3f3f5593 100644 --- a/samples/client/petstore/javascript-es6/src/model/Capitalization.js +++ b/samples/client/petstore/javascript-es6/src/model/Capitalization.js @@ -7,117 +7,110 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Capitalization model module. +* @module model/Capitalization +* @version 1.0.0 +*/ +export default class Capitalization { + /** + * Constructs a new Capitalization. + * @alias module:model/Capitalization + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Capitalization = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Capitalization from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Capitalization} obj Optional instance to populate. + * @return {module:model/Capitalization} The populated Capitalization instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Capitalization(); + + + - - /** - * The Capitalization model module. - * @module model/Capitalization - * @version 1.0.0 - */ - - /** - * Constructs a new Capitalization. - * @alias module:model/Capitalization - * @class - */ - var exports = function() { - var _this = this; - - - - - - - - }; - - /** - * Constructs a Capitalization from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Capitalization} obj Optional instance to populate. - * @return {module:model/Capitalization} The populated Capitalization instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('smallCamel')) { - obj['smallCamel'] = ApiClient.convertToType(data['smallCamel'], 'String'); - } - if (data.hasOwnProperty('CapitalCamel')) { - obj['CapitalCamel'] = ApiClient.convertToType(data['CapitalCamel'], 'String'); - } - if (data.hasOwnProperty('small_Snake')) { - obj['small_Snake'] = ApiClient.convertToType(data['small_Snake'], 'String'); - } - if (data.hasOwnProperty('Capital_Snake')) { - obj['Capital_Snake'] = ApiClient.convertToType(data['Capital_Snake'], 'String'); - } - if (data.hasOwnProperty('SCA_ETH_Flow_Points')) { - obj['SCA_ETH_Flow_Points'] = ApiClient.convertToType(data['SCA_ETH_Flow_Points'], 'String'); - } - if (data.hasOwnProperty('ATT_NAME')) { - obj['ATT_NAME'] = ApiClient.convertToType(data['ATT_NAME'], 'String'); - } + if (data.hasOwnProperty('smallCamel')) { + obj['smallCamel'] = ApiClient.convertToType(data['smallCamel'], 'String'); + } + if (data.hasOwnProperty('CapitalCamel')) { + obj['CapitalCamel'] = ApiClient.convertToType(data['CapitalCamel'], 'String'); + } + if (data.hasOwnProperty('small_Snake')) { + obj['small_Snake'] = ApiClient.convertToType(data['small_Snake'], 'String'); + } + if (data.hasOwnProperty('Capital_Snake')) { + obj['Capital_Snake'] = ApiClient.convertToType(data['Capital_Snake'], 'String'); + } + if (data.hasOwnProperty('SCA_ETH_Flow_Points')) { + obj['SCA_ETH_Flow_Points'] = ApiClient.convertToType(data['SCA_ETH_Flow_Points'], 'String'); + } + if (data.hasOwnProperty('ATT_NAME')) { + obj['ATT_NAME'] = ApiClient.convertToType(data['ATT_NAME'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} smallCamel - */ - exports.prototype['smallCamel'] = undefined; - /** - * @member {String} CapitalCamel - */ - exports.prototype['CapitalCamel'] = undefined; - /** - * @member {String} small_Snake - */ - exports.prototype['small_Snake'] = undefined; - /** - * @member {String} Capital_Snake - */ - exports.prototype['Capital_Snake'] = undefined; - /** - * @member {String} SCA_ETH_Flow_Points - */ - exports.prototype['SCA_ETH_Flow_Points'] = undefined; - /** - * Name of the pet - * @member {String} ATT_NAME - */ - exports.prototype['ATT_NAME'] = undefined; + /** + * @member {String} smallCamel + */ + smallCamel = undefined; + /** + * @member {String} CapitalCamel + */ + CapitalCamel = undefined; + /** + * @member {String} small_Snake + */ + small_Snake = undefined; + /** + * @member {String} Capital_Snake + */ + Capital_Snake = undefined; + /** + * @member {String} SCA_ETH_Flow_Points + */ + SCA_ETH_Flow_Points = undefined; + /** + * Name of the pet + * @member {String} ATT_NAME + */ + ATT_NAME = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Cat.js b/samples/client/petstore/javascript-es6/src/model/Cat.js index 862e7b0c910..da946664d08 100644 --- a/samples/client/petstore/javascript-es6/src/model/Cat.js +++ b/samples/client/petstore/javascript-es6/src/model/Cat.js @@ -7,81 +7,78 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The Cat model module. +* @module model/Cat +* @version 1.0.0 +*/ +export default class Cat { + /** + * Constructs a new Cat. + * @alias module:model/Cat + * @class + * @extends module:model/Animal + * @param className {String} + */ + + constructor(className) { + + + Animal.call(this, className); + + + + + } - root.SwaggerPetstore.Cat = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a Cat from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Cat} obj Optional instance to populate. + * @return {module:model/Cat} The populated Cat instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Cat(); + + Animal.constructFromObject(data, obj); + - /** - * The Cat model module. - * @module model/Cat - * @version 1.0.0 - */ - - /** - * Constructs a new Cat. - * @alias module:model/Cat - * @class - * @extends module:model/Animal - * @param className {String} - */ - var exports = function(className) { - var _this = this; - Animal.call(_this, className); - - }; - - /** - * Constructs a Cat from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Cat} obj Optional instance to populate. - * @return {module:model/Cat} The populated Cat instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - Animal.constructFromObject(data, obj); - if (data.hasOwnProperty('declawed')) { - obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean'); - } + if (data.hasOwnProperty('declawed')) { + obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean'); + } + } + return obj; } - return obj; - } - exports.prototype = Object.create(Animal.prototype); - exports.prototype.constructor = exports; - - /** - * @member {Boolean} declawed - */ - exports.prototype['declawed'] = undefined; + /** + * @member {Boolean} declawed + */ + declawed = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Category.js b/samples/client/petstore/javascript-es6/src/model/Category.js index d7ecc2207da..a281817b72f 100644 --- a/samples/client/petstore/javascript-es6/src/model/Category.js +++ b/samples/client/petstore/javascript-es6/src/model/Category.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Category model module. +* @module model/Category +* @version 1.0.0 +*/ +export default class Category { + /** + * Constructs a new Category. + * @alias module:model/Category + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Category = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Category from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Category} obj Optional instance to populate. + * @return {module:model/Category} The populated Category instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Category(); + + + - - /** - * The Category model module. - * @module model/Category - * @version 1.0.0 - */ - - /** - * Constructs a new Category. - * @alias module:model/Category - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a Category from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Category} obj Optional instance to populate. - * @return {module:model/Category} The populated Category instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {String} name - */ - exports.prototype['name'] = undefined; + /** + * @member {Number} id + */ + id = undefined; + /** + * @member {String} name + */ + name = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ClassModel.js b/samples/client/petstore/javascript-es6/src/model/ClassModel.js index c3b7b83f9c5..6a558444ade 100644 --- a/samples/client/petstore/javascript-es6/src/model/ClassModel.js +++ b/samples/client/petstore/javascript-es6/src/model/ClassModel.js @@ -7,77 +7,75 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ClassModel model module. +* @module model/ClassModel +* @version 1.0.0 +*/ +export default class ClassModel { + /** + * Constructs a new ClassModel. + * Model for testing model with \"_class\" property + * @alias module:model/ClassModel + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ClassModel = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ClassModel from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ClassModel} obj Optional instance to populate. + * @return {module:model/ClassModel} The populated ClassModel instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ClassModel(); + + + - - /** - * The ClassModel model module. - * @module model/ClassModel - * @version 1.0.0 - */ - - /** - * Constructs a new ClassModel. - * Model for testing model with \"_class\" property - * @alias module:model/ClassModel - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ClassModel from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ClassModel} obj Optional instance to populate. - * @return {module:model/ClassModel} The populated ClassModel instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('_class')) { - obj['_class'] = ApiClient.convertToType(data['_class'], 'String'); - } + if (data.hasOwnProperty('_class')) { + obj['_class'] = ApiClient.convertToType(data['_class'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} _class - */ - exports.prototype['_class'] = undefined; + /** + * @member {String} _class + */ + _class = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Client.js b/samples/client/petstore/javascript-es6/src/model/Client.js index a2912224910..a4f9b235154 100644 --- a/samples/client/petstore/javascript-es6/src/model/Client.js +++ b/samples/client/petstore/javascript-es6/src/model/Client.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Client model module. +* @module model/Client +* @version 1.0.0 +*/ +export default class Client { + /** + * Constructs a new Client. + * @alias module:model/Client + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Client = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Client from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Client} obj Optional instance to populate. + * @return {module:model/Client} The populated Client instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Client(); + + + - - /** - * The Client model module. - * @module model/Client - * @version 1.0.0 - */ - - /** - * Constructs a new Client. - * @alias module:model/Client - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a Client from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Client} obj Optional instance to populate. - * @return {module:model/Client} The populated Client instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('client')) { - obj['client'] = ApiClient.convertToType(data['client'], 'String'); - } + if (data.hasOwnProperty('client')) { + obj['client'] = ApiClient.convertToType(data['client'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} client - */ - exports.prototype['client'] = undefined; + /** + * @member {String} client + */ + client = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Dog.js b/samples/client/petstore/javascript-es6/src/model/Dog.js index 2cd286fb741..e5bc0d3cecf 100644 --- a/samples/client/petstore/javascript-es6/src/model/Dog.js +++ b/samples/client/petstore/javascript-es6/src/model/Dog.js @@ -7,81 +7,78 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The Dog model module. +* @module model/Dog +* @version 1.0.0 +*/ +export default class Dog { + /** + * Constructs a new Dog. + * @alias module:model/Dog + * @class + * @extends module:model/Animal + * @param className {String} + */ + + constructor(className) { + + + Animal.call(this, className); + + + + + } - root.SwaggerPetstore.Dog = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a Dog from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Dog} obj Optional instance to populate. + * @return {module:model/Dog} The populated Dog instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Dog(); + + Animal.constructFromObject(data, obj); + - /** - * The Dog model module. - * @module model/Dog - * @version 1.0.0 - */ - - /** - * Constructs a new Dog. - * @alias module:model/Dog - * @class - * @extends module:model/Animal - * @param className {String} - */ - var exports = function(className) { - var _this = this; - Animal.call(_this, className); - - }; - - /** - * Constructs a Dog from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Dog} obj Optional instance to populate. - * @return {module:model/Dog} The populated Dog instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - Animal.constructFromObject(data, obj); - if (data.hasOwnProperty('breed')) { - obj['breed'] = ApiClient.convertToType(data['breed'], 'String'); - } + if (data.hasOwnProperty('breed')) { + obj['breed'] = ApiClient.convertToType(data['breed'], 'String'); + } + } + return obj; } - return obj; - } - exports.prototype = Object.create(Animal.prototype); - exports.prototype.constructor = exports; - - /** - * @member {String} breed - */ - exports.prototype['breed'] = undefined; + /** + * @member {String} breed + */ + breed = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/EnumArrays.js b/samples/client/petstore/javascript-es6/src/model/EnumArrays.js index 079cfe25084..20a74f0d883 100644 --- a/samples/client/petstore/javascript-es6/src/model/EnumArrays.js +++ b/samples/client/petstore/javascript-es6/src/model/EnumArrays.js @@ -7,118 +7,121 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The EnumArrays model module. +* @module model/EnumArrays +* @version 1.0.0 +*/ +export default class EnumArrays { + /** + * Constructs a new EnumArrays. + * @alias module:model/EnumArrays + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.EnumArrays = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a EnumArrays from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/EnumArrays} obj Optional instance to populate. + * @return {module:model/EnumArrays} The populated EnumArrays instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new EnumArrays(); + + + - - /** - * The EnumArrays model module. - * @module model/EnumArrays - * @version 1.0.0 - */ - - /** - * Constructs a new EnumArrays. - * @alias module:model/EnumArrays - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a EnumArrays from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/EnumArrays} obj Optional instance to populate. - * @return {module:model/EnumArrays} The populated EnumArrays instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('just_symbol')) { - obj['just_symbol'] = ApiClient.convertToType(data['just_symbol'], 'String'); - } - if (data.hasOwnProperty('array_enum')) { - obj['array_enum'] = ApiClient.convertToType(data['array_enum'], ['String']); - } + if (data.hasOwnProperty('just_symbol')) { + obj['just_symbol'] = ApiClient.convertToType(data['just_symbol'], 'String'); + } + if (data.hasOwnProperty('array_enum')) { + obj['array_enum'] = ApiClient.convertToType(data['array_enum'], ['String']); + } + } + return obj; } - return obj; - } - /** - * @member {module:model/EnumArrays.JustSymbolEnum} just_symbol - */ - exports.prototype['just_symbol'] = undefined; - /** - * @member {Array.} array_enum - */ - exports.prototype['array_enum'] = undefined; - - - /** - * Allowed values for the just_symbol property. - * @enum {String} - * @readonly - */ - exports.JustSymbolEnum = { /** - * value: ">=" - * @const - */ - "GREATER_THAN_OR_EQUAL_TO": ">=", + * @member {module:model/EnumArrays.JustSymbolEnum} just_symbol + */ + just_symbol = undefined; /** - * value: "$" - * @const - */ - "DOLLAR": "$" }; + * @member {Array.} array_enum + */ + array_enum = undefined; + + + + + - /** - * Allowed values for the arrayEnum property. - * @enum {String} - * @readonly - */ - exports.ArrayEnumEnum = { /** - * value: "fish" - * @const - */ - "fish": "fish", + * Allowed values for the just_symbol property. + * @enum {String} + * @readonly + */ + static JustSymbolEnum = { + + /** + * value: ">=" + * @const + */ + "GREATER_THAN_OR_EQUAL_TO": ">=", + + /** + * value: "$" + * @const + */ + "DOLLAR": "$" + }; + /** - * value: "crab" - * @const - */ - "crab": "crab" }; + * Allowed values for the arrayEnum property. + * @enum {String} + * @readonly + */ + static ArrayEnumEnum = { + + /** + * value: "fish" + * @const + */ + "fish": "fish", + + /** + * value: "crab" + * @const + */ + "crab": "crab" + }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-es6/src/model/EnumClass.js b/samples/client/petstore/javascript-es6/src/model/EnumClass.js index 881a7503047..eeb08ca2864 100644 --- a/samples/client/petstore/javascript-es6/src/model/EnumClass.js +++ b/samples/client/petstore/javascript-es6/src/model/EnumClass.js @@ -7,63 +7,51 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + +/** +* Enum class EnumClass. +* @enum {} +* @readonly +*/ +export default class EnumClass { + + /** + * value: "_abc" + * @const + */ + _abc = "_abc"; + + + /** + * value: "-efg" + * @const + */ + -efg = "-efg"; + + + /** + * value: "(xyz)" + * @const + */ + (xyz) = "(xyz)"; + + + + /** + * Returns a EnumClass enum value from a Javascript object name. + * @param {Object} data The plain JavaScript object containing the name of the enum value. + * @return {module:model/EnumClass} The enum EnumClass value. + */ + static constructFromObject(object) { + return object; } - root.SwaggerPetstore.EnumClass = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; - - - /** - * Enum class EnumClass. - * @enum {} - * @readonly - */ - var exports = { - /** - * value: "_abc" - * @const - */ - "_abc": "_abc", - /** - * value: "-efg" - * @const - */ - "-efg": "-efg", - /** - * value: "(xyz)" - * @const - */ - "(xyz)": "(xyz)" }; - - /** - * Returns a EnumClass enum value from a Javascript object name. - * @param {Object} data The plain JavaScript object containing the name of the enum value. - * @return {module:model/EnumClass} The enum EnumClass value. - */ - exports.constructFromObject = function(object) { - return object; - } - - return exports; -})); +} diff --git a/samples/client/petstore/javascript-es6/src/model/EnumTest.js b/samples/client/petstore/javascript-es6/src/model/EnumTest.js index 215bea59d38..b1f9b0b6c69 100644 --- a/samples/client/petstore/javascript-es6/src/model/EnumTest.js +++ b/samples/client/petstore/javascript-es6/src/model/EnumTest.js @@ -7,156 +7,162 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/OuterEnum'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./OuterEnum')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import OuterEnum from './OuterEnum'; + + + + + +/** +* The EnumTest model module. +* @module model/EnumTest +* @version 1.0.0 +*/ +export default class EnumTest { + /** + * Constructs a new EnumTest. + * @alias module:model/EnumTest + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.EnumTest = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.OuterEnum); - } -}(this, function(ApiClient, OuterEnum) { - 'use strict'; + /** + * Constructs a EnumTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/EnumTest} obj Optional instance to populate. + * @return {module:model/EnumTest} The populated EnumTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new EnumTest(); + + + - - /** - * The EnumTest model module. - * @module model/EnumTest - * @version 1.0.0 - */ - - /** - * Constructs a new EnumTest. - * @alias module:model/EnumTest - * @class - */ - var exports = function() { - var _this = this; - - - - - - }; - - /** - * Constructs a EnumTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/EnumTest} obj Optional instance to populate. - * @return {module:model/EnumTest} The populated EnumTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('enum_string')) { - obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String'); - } - if (data.hasOwnProperty('enum_integer')) { - obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number'); - } - if (data.hasOwnProperty('enum_number')) { - obj['enum_number'] = ApiClient.convertToType(data['enum_number'], 'Number'); - } - if (data.hasOwnProperty('outerEnum')) { - obj['outerEnum'] = OuterEnum.constructFromObject(data['outerEnum']); - } + if (data.hasOwnProperty('enum_string')) { + obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String'); + } + if (data.hasOwnProperty('enum_integer')) { + obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number'); + } + if (data.hasOwnProperty('enum_number')) { + obj['enum_number'] = ApiClient.convertToType(data['enum_number'], 'Number'); + } + if (data.hasOwnProperty('outerEnum')) { + obj['outerEnum'] = OuterEnum.constructFromObject(data['outerEnum']); + } + } + return obj; } - return obj; - } - /** - * @member {module:model/EnumTest.EnumStringEnum} enum_string - */ - exports.prototype['enum_string'] = undefined; - /** - * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer - */ - exports.prototype['enum_integer'] = undefined; - /** - * @member {module:model/EnumTest.EnumNumberEnum} enum_number - */ - exports.prototype['enum_number'] = undefined; - /** - * @member {module:model/OuterEnum} outerEnum - */ - exports.prototype['outerEnum'] = undefined; - - - /** - * Allowed values for the enum_string property. - * @enum {String} - * @readonly - */ - exports.EnumStringEnum = { /** - * value: "UPPER" - * @const - */ - "UPPER": "UPPER", + * @member {module:model/EnumTest.EnumStringEnum} enum_string + */ + enum_string = undefined; /** - * value: "lower" - * @const - */ - "lower": "lower", + * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer + */ + enum_integer = undefined; /** - * value: "" - * @const - */ - "empty": "" }; - - /** - * Allowed values for the enum_integer property. - * @enum {Number} - * @readonly - */ - exports.EnumIntegerEnum = { + * @member {module:model/EnumTest.EnumNumberEnum} enum_number + */ + enum_number = undefined; /** - * value: 1 - * @const - */ - "1": 1, - /** - * value: -1 - * @const - */ - "-1": -1 }; - - /** - * Allowed values for the enum_number property. - * @enum {Number} - * @readonly - */ - exports.EnumNumberEnum = { - /** - * value: 1.1 - * @const - */ - "1.1": 1.1, - /** - * value: -1.2 - * @const - */ - "-1.2": -1.2 }; + * @member {module:model/OuterEnum} outerEnum + */ + outerEnum = undefined; - return exports; -})); + + + + + /** + * Allowed values for the enum_string property. + * @enum {String} + * @readonly + */ + static EnumStringEnum = { + + /** + * value: "UPPER" + * @const + */ + "UPPER": "UPPER", + + /** + * value: "lower" + * @const + */ + "lower": "lower", + + /** + * value: "" + * @const + */ + "empty": "" + }; + + /** + * Allowed values for the enum_integer property. + * @enum {Number} + * @readonly + */ + static EnumIntegerEnum = { + + /** + * value: 1 + * @const + */ + "1": 1, + + /** + * value: -1 + * @const + */ + "-1": -1 + }; + + /** + * Allowed values for the enum_number property. + * @enum {Number} + * @readonly + */ + static EnumNumberEnum = { + + /** + * value: 1.1 + * @const + */ + "1.1": 1.1, + + /** + * value: -1.2 + * @const + */ + "-1.2": -1.2 + }; + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/FormatTest.js b/samples/client/petstore/javascript-es6/src/model/FormatTest.js index 238224d0132..8773a3a7755 100644 --- a/samples/client/petstore/javascript-es6/src/model/FormatTest.js +++ b/samples/client/petstore/javascript-es6/src/model/FormatTest.js @@ -7,176 +7,162 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The FormatTest model module. +* @module model/FormatTest +* @version 1.0.0 +*/ +export default class FormatTest { + /** + * Constructs a new FormatTest. + * @alias module:model/FormatTest + * @class + * @param _number {Number} + * @param _byte {Blob} + * @param _date {Date} + * @param password {String} + */ + + constructor(_number, _byte, _date, password) { + + + + + + this['number'] = _number;this['byte'] = _byte;this['date'] = _date;this['password'] = password; + + } - root.SwaggerPetstore.FormatTest = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a FormatTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/FormatTest} obj Optional instance to populate. + * @return {module:model/FormatTest} The populated FormatTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new FormatTest(); + + + - - /** - * The FormatTest model module. - * @module model/FormatTest - * @version 1.0.0 - */ - - /** - * Constructs a new FormatTest. - * @alias module:model/FormatTest - * @class - * @param _number {Number} - * @param _byte {Blob} - * @param _date {Date} - * @param password {String} - */ - var exports = function(_number, _byte, _date, password) { - var _this = this; - - - - - _this['number'] = _number; - - - - _this['byte'] = _byte; - - _this['date'] = _date; - - - _this['password'] = password; - }; - - /** - * Constructs a FormatTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/FormatTest} obj Optional instance to populate. - * @return {module:model/FormatTest} The populated FormatTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('integer')) { - obj['integer'] = ApiClient.convertToType(data['integer'], 'Number'); - } - if (data.hasOwnProperty('int32')) { - obj['int32'] = ApiClient.convertToType(data['int32'], 'Number'); - } - if (data.hasOwnProperty('int64')) { - obj['int64'] = ApiClient.convertToType(data['int64'], 'Number'); - } - if (data.hasOwnProperty('number')) { - obj['number'] = ApiClient.convertToType(data['number'], 'Number'); - } - if (data.hasOwnProperty('float')) { - obj['float'] = ApiClient.convertToType(data['float'], 'Number'); - } - if (data.hasOwnProperty('double')) { - obj['double'] = ApiClient.convertToType(data['double'], 'Number'); - } - if (data.hasOwnProperty('string')) { - obj['string'] = ApiClient.convertToType(data['string'], 'String'); - } - if (data.hasOwnProperty('byte')) { - obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob'); - } - if (data.hasOwnProperty('binary')) { - obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob'); - } - if (data.hasOwnProperty('date')) { - obj['date'] = ApiClient.convertToType(data['date'], 'Date'); - } - if (data.hasOwnProperty('dateTime')) { - obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); - } - if (data.hasOwnProperty('uuid')) { - obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); - } - if (data.hasOwnProperty('password')) { - obj['password'] = ApiClient.convertToType(data['password'], 'String'); - } + if (data.hasOwnProperty('integer')) { + obj['integer'] = ApiClient.convertToType(data['integer'], 'Number'); + } + if (data.hasOwnProperty('int32')) { + obj['int32'] = ApiClient.convertToType(data['int32'], 'Number'); + } + if (data.hasOwnProperty('int64')) { + obj['int64'] = ApiClient.convertToType(data['int64'], 'Number'); + } + if (data.hasOwnProperty('number')) { + obj['number'] = ApiClient.convertToType(data['number'], 'Number'); + } + if (data.hasOwnProperty('float')) { + obj['float'] = ApiClient.convertToType(data['float'], 'Number'); + } + if (data.hasOwnProperty('double')) { + obj['double'] = ApiClient.convertToType(data['double'], 'Number'); + } + if (data.hasOwnProperty('string')) { + obj['string'] = ApiClient.convertToType(data['string'], 'String'); + } + if (data.hasOwnProperty('byte')) { + obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob'); + } + if (data.hasOwnProperty('binary')) { + obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob'); + } + if (data.hasOwnProperty('date')) { + obj['date'] = ApiClient.convertToType(data['date'], 'Date'); + } + if (data.hasOwnProperty('dateTime')) { + obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); + } + if (data.hasOwnProperty('uuid')) { + obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); + } + if (data.hasOwnProperty('password')) { + obj['password'] = ApiClient.convertToType(data['password'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} integer - */ - exports.prototype['integer'] = undefined; - /** - * @member {Number} int32 - */ - exports.prototype['int32'] = undefined; - /** - * @member {Number} int64 - */ - exports.prototype['int64'] = undefined; - /** - * @member {Number} number - */ - exports.prototype['number'] = undefined; - /** - * @member {Number} float - */ - exports.prototype['float'] = undefined; - /** - * @member {Number} double - */ - exports.prototype['double'] = undefined; - /** - * @member {String} string - */ - exports.prototype['string'] = undefined; - /** - * @member {Blob} byte - */ - exports.prototype['byte'] = undefined; - /** - * @member {Blob} binary - */ - exports.prototype['binary'] = undefined; - /** - * @member {Date} date - */ - exports.prototype['date'] = undefined; - /** - * @member {Date} dateTime - */ - exports.prototype['dateTime'] = undefined; - /** - * @member {String} uuid - */ - exports.prototype['uuid'] = undefined; - /** - * @member {String} password - */ - exports.prototype['password'] = undefined; + /** + * @member {Number} integer + */ + integer = undefined; + /** + * @member {Number} int32 + */ + int32 = undefined; + /** + * @member {Number} int64 + */ + int64 = undefined; + /** + * @member {Number} number + */ + number = undefined; + /** + * @member {Number} float + */ + float = undefined; + /** + * @member {Number} double + */ + double = undefined; + /** + * @member {String} string + */ + string = undefined; + /** + * @member {Blob} byte + */ + byte = undefined; + /** + * @member {Blob} binary + */ + binary = undefined; + /** + * @member {Date} date + */ + date = undefined; + /** + * @member {Date} dateTime + */ + dateTime = undefined; + /** + * @member {String} uuid + */ + uuid = undefined; + /** + * @member {String} password + */ + password = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js b/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js index 566e0663de0..cb859fe3e50 100644 --- a/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js +++ b/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The HasOnlyReadOnly model module. +* @module model/HasOnlyReadOnly +* @version 1.0.0 +*/ +export default class HasOnlyReadOnly { + /** + * Constructs a new HasOnlyReadOnly. + * @alias module:model/HasOnlyReadOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.HasOnlyReadOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a HasOnlyReadOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/HasOnlyReadOnly} obj Optional instance to populate. + * @return {module:model/HasOnlyReadOnly} The populated HasOnlyReadOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new HasOnlyReadOnly(); + + + - - /** - * The HasOnlyReadOnly model module. - * @module model/HasOnlyReadOnly - * @version 1.0.0 - */ - - /** - * Constructs a new HasOnlyReadOnly. - * @alias module:model/HasOnlyReadOnly - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a HasOnlyReadOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/HasOnlyReadOnly} obj Optional instance to populate. - * @return {module:model/HasOnlyReadOnly} The populated HasOnlyReadOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('bar')) { - obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); - } - if (data.hasOwnProperty('foo')) { - obj['foo'] = ApiClient.convertToType(data['foo'], 'String'); - } + if (data.hasOwnProperty('bar')) { + obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); + } + if (data.hasOwnProperty('foo')) { + obj['foo'] = ApiClient.convertToType(data['foo'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} bar - */ - exports.prototype['bar'] = undefined; - /** - * @member {String} foo - */ - exports.prototype['foo'] = undefined; + /** + * @member {String} bar + */ + bar = undefined; + /** + * @member {String} foo + */ + foo = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/List.js b/samples/client/petstore/javascript-es6/src/model/List.js index b5db0490fe4..513acd45aff 100644 --- a/samples/client/petstore/javascript-es6/src/model/List.js +++ b/samples/client/petstore/javascript-es6/src/model/List.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The List model module. +* @module model/List +* @version 1.0.0 +*/ +export default class List { + /** + * Constructs a new List. + * @alias module:model/List + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.List = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a List from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/List} obj Optional instance to populate. + * @return {module:model/List} The populated List instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new List(); + + + - - /** - * The List model module. - * @module model/List - * @version 1.0.0 - */ - - /** - * Constructs a new List. - * @alias module:model/List - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a List from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/List} obj Optional instance to populate. - * @return {module:model/List} The populated List instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('123-list')) { - obj['123-list'] = ApiClient.convertToType(data['123-list'], 'String'); - } + if (data.hasOwnProperty('123-list')) { + obj['123-list'] = ApiClient.convertToType(data['123-list'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} 123-list - */ - exports.prototype['123-list'] = undefined; + /** + * @member {String} 123-list + */ + 123-list = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/MapTest.js b/samples/client/petstore/javascript-es6/src/model/MapTest.js index 59f089976c1..b7a60cd8d9d 100644 --- a/samples/client/petstore/javascript-es6/src/model/MapTest.js +++ b/samples/client/petstore/javascript-es6/src/model/MapTest.js @@ -7,101 +7,101 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; - } - root.SwaggerPetstore.MapTest = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + +import ApiClient from '../ApiClient'; - /** - * The MapTest model module. - * @module model/MapTest - * @version 1.0.0 - */ - /** - * Constructs a new MapTest. - * @alias module:model/MapTest - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a MapTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/MapTest} obj Optional instance to populate. - * @return {module:model/MapTest} The populated MapTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('map_map_of_string')) { - obj['map_map_of_string'] = ApiClient.convertToType(data['map_map_of_string'], {'String': {'String': 'String'}}); - } - if (data.hasOwnProperty('map_of_enum_string')) { - obj['map_of_enum_string'] = ApiClient.convertToType(data['map_of_enum_string'], {'String': 'String'}); - } - } - return obj; - } - - /** - * @member {Object.>} map_map_of_string - */ - exports.prototype['map_map_of_string'] = undefined; - /** - * @member {Object.} map_of_enum_string - */ - exports.prototype['map_of_enum_string'] = undefined; - - - /** - * Allowed values for the inner property. - * @enum {String} - * @readonly - */ - exports.InnerEnum = { +/** +* The MapTest model module. +* @module model/MapTest +* @version 1.0.0 +*/ +export default class MapTest { /** - * value: "UPPER" - * @const - */ - "UPPER": "UPPER", + * Constructs a new MapTest. + * @alias module:model/MapTest + * @class + */ + + constructor() { + + + + + + + + + } + /** - * value: "lower" - * @const - */ - "lower": "lower" }; + * Constructs a MapTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/MapTest} obj Optional instance to populate. + * @return {module:model/MapTest} The populated MapTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new MapTest(); + + + + + + if (data.hasOwnProperty('map_map_of_string')) { + obj['map_map_of_string'] = ApiClient.convertToType(data['map_map_of_string'], {'String': {'String': 'String'}}); + } + if (data.hasOwnProperty('map_of_enum_string')) { + obj['map_of_enum_string'] = ApiClient.convertToType(data['map_of_enum_string'], {'String': 'String'}); + } + } + return obj; + } + + /** + * @member {Object.>} map_map_of_string + */ + map_map_of_string = undefined; + /** + * @member {Object.} map_of_enum_string + */ + map_of_enum_string = undefined; - return exports; -})); + + + + + /** + * Allowed values for the inner property. + * @enum {String} + * @readonly + */ + static InnerEnum = { + + /** + * value: "UPPER" + * @const + */ + "UPPER": "UPPER", + + /** + * value: "lower" + * @const + */ + "lower": "lower" + }; + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js b/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js index 334b0773a04..6d912ceeb9b 100644 --- a/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js +++ b/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js @@ -7,92 +7,89 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The MixedPropertiesAndAdditionalPropertiesClass model module. +* @module model/MixedPropertiesAndAdditionalPropertiesClass +* @version 1.0.0 +*/ +export default class MixedPropertiesAndAdditionalPropertiesClass { + /** + * Constructs a new MixedPropertiesAndAdditionalPropertiesClass. + * @alias module:model/MixedPropertiesAndAdditionalPropertiesClass + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a MixedPropertiesAndAdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/MixedPropertiesAndAdditionalPropertiesClass} obj Optional instance to populate. + * @return {module:model/MixedPropertiesAndAdditionalPropertiesClass} The populated MixedPropertiesAndAdditionalPropertiesClass instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new MixedPropertiesAndAdditionalPropertiesClass(); + + + - - /** - * The MixedPropertiesAndAdditionalPropertiesClass model module. - * @module model/MixedPropertiesAndAdditionalPropertiesClass - * @version 1.0.0 - */ - - /** - * Constructs a new MixedPropertiesAndAdditionalPropertiesClass. - * @alias module:model/MixedPropertiesAndAdditionalPropertiesClass - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a MixedPropertiesAndAdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/MixedPropertiesAndAdditionalPropertiesClass} obj Optional instance to populate. - * @return {module:model/MixedPropertiesAndAdditionalPropertiesClass} The populated MixedPropertiesAndAdditionalPropertiesClass instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('uuid')) { - obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); - } - if (data.hasOwnProperty('dateTime')) { - obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); - } - if (data.hasOwnProperty('map')) { - obj['map'] = ApiClient.convertToType(data['map'], {'String': Animal}); - } + if (data.hasOwnProperty('uuid')) { + obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); + } + if (data.hasOwnProperty('dateTime')) { + obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); + } + if (data.hasOwnProperty('map')) { + obj['map'] = ApiClient.convertToType(data['map'], {'String': Animal}); + } + } + return obj; } - return obj; - } - /** - * @member {String} uuid - */ - exports.prototype['uuid'] = undefined; - /** - * @member {Date} dateTime - */ - exports.prototype['dateTime'] = undefined; - /** - * @member {Object.} map - */ - exports.prototype['map'] = undefined; + /** + * @member {String} uuid + */ + uuid = undefined; + /** + * @member {Date} dateTime + */ + dateTime = undefined; + /** + * @member {Object.} map + */ + map = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Model200Response.js b/samples/client/petstore/javascript-es6/src/model/Model200Response.js index a10e470be5c..df4d957df7c 100644 --- a/samples/client/petstore/javascript-es6/src/model/Model200Response.js +++ b/samples/client/petstore/javascript-es6/src/model/Model200Response.js @@ -7,85 +7,82 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Model200Response model module. +* @module model/Model200Response +* @version 1.0.0 +*/ +export default class Model200Response { + /** + * Constructs a new Model200Response. + * Model for testing model name starting with number + * @alias module:model/Model200Response + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Model200Response = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Model200Response from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Model200Response} obj Optional instance to populate. + * @return {module:model/Model200Response} The populated Model200Response instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Model200Response(); + + + - - /** - * The Model200Response model module. - * @module model/Model200Response - * @version 1.0.0 - */ - - /** - * Constructs a new Model200Response. - * Model for testing model name starting with number - * @alias module:model/Model200Response - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a Model200Response from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Model200Response} obj Optional instance to populate. - * @return {module:model/Model200Response} The populated Model200Response instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'Number'); - } - if (data.hasOwnProperty('class')) { - obj['class'] = ApiClient.convertToType(data['class'], 'String'); - } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'Number'); + } + if (data.hasOwnProperty('class')) { + obj['class'] = ApiClient.convertToType(data['class'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} name - */ - exports.prototype['name'] = undefined; - /** - * @member {String} class - */ - exports.prototype['class'] = undefined; + /** + * @member {Number} name + */ + name = undefined; + /** + * @member {String} class + */ + class = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ModelReturn.js b/samples/client/petstore/javascript-es6/src/model/ModelReturn.js index 07467bbaa63..88fd97ab85f 100644 --- a/samples/client/petstore/javascript-es6/src/model/ModelReturn.js +++ b/samples/client/petstore/javascript-es6/src/model/ModelReturn.js @@ -7,77 +7,75 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ModelReturn model module. +* @module model/ModelReturn +* @version 1.0.0 +*/ +export default class ModelReturn { + /** + * Constructs a new ModelReturn. + * Model for testing reserved words + * @alias module:model/ModelReturn + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ModelReturn = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ModelReturn from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ModelReturn} obj Optional instance to populate. + * @return {module:model/ModelReturn} The populated ModelReturn instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ModelReturn(); + + + - - /** - * The ModelReturn model module. - * @module model/ModelReturn - * @version 1.0.0 - */ - - /** - * Constructs a new ModelReturn. - * Model for testing reserved words - * @alias module:model/ModelReturn - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ModelReturn from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ModelReturn} obj Optional instance to populate. - * @return {module:model/ModelReturn} The populated ModelReturn instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('return')) { - obj['return'] = ApiClient.convertToType(data['return'], 'Number'); - } + if (data.hasOwnProperty('return')) { + obj['return'] = ApiClient.convertToType(data['return'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} return - */ - exports.prototype['return'] = undefined; + /** + * @member {Number} return + */ + return = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Name.js b/samples/client/petstore/javascript-es6/src/model/Name.js index d79c05387fe..f355fbdd403 100644 --- a/samples/client/petstore/javascript-es6/src/model/Name.js +++ b/samples/client/petstore/javascript-es6/src/model/Name.js @@ -7,102 +7,97 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Name model module. +* @module model/Name +* @version 1.0.0 +*/ +export default class Name { + /** + * Constructs a new Name. + * Model for testing model name same as property name + * @alias module:model/Name + * @class + * @param name {Number} + */ + + constructor(name) { + + + + + + this['name'] = name; + + } - root.SwaggerPetstore.Name = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Name from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Name} obj Optional instance to populate. + * @return {module:model/Name} The populated Name instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Name(); + + + - - /** - * The Name model module. - * @module model/Name - * @version 1.0.0 - */ - - /** - * Constructs a new Name. - * Model for testing model name same as property name - * @alias module:model/Name - * @class - * @param name {Number} - */ - var exports = function(name) { - var _this = this; - - _this['name'] = name; - - - - }; - - /** - * Constructs a Name from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Name} obj Optional instance to populate. - * @return {module:model/Name} The populated Name instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'Number'); - } - if (data.hasOwnProperty('snake_case')) { - obj['snake_case'] = ApiClient.convertToType(data['snake_case'], 'Number'); - } - if (data.hasOwnProperty('property')) { - obj['property'] = ApiClient.convertToType(data['property'], 'String'); - } - if (data.hasOwnProperty('123Number')) { - obj['123Number'] = ApiClient.convertToType(data['123Number'], 'Number'); - } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'Number'); + } + if (data.hasOwnProperty('snake_case')) { + obj['snake_case'] = ApiClient.convertToType(data['snake_case'], 'Number'); + } + if (data.hasOwnProperty('property')) { + obj['property'] = ApiClient.convertToType(data['property'], 'String'); + } + if (data.hasOwnProperty('123Number')) { + obj['123Number'] = ApiClient.convertToType(data['123Number'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} name - */ - exports.prototype['name'] = undefined; - /** - * @member {Number} snake_case - */ - exports.prototype['snake_case'] = undefined; - /** - * @member {String} property - */ - exports.prototype['property'] = undefined; - /** - * @member {Number} 123Number - */ - exports.prototype['123Number'] = undefined; + /** + * @member {Number} name + */ + name = undefined; + /** + * @member {Number} snake_case + */ + snake_case = undefined; + /** + * @member {String} property + */ + property = undefined; + /** + * @member {Number} 123Number + */ + 123Number = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/NumberOnly.js b/samples/client/petstore/javascript-es6/src/model/NumberOnly.js index c5edb0b0a50..bee66870891 100644 --- a/samples/client/petstore/javascript-es6/src/model/NumberOnly.js +++ b/samples/client/petstore/javascript-es6/src/model/NumberOnly.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The NumberOnly model module. +* @module model/NumberOnly +* @version 1.0.0 +*/ +export default class NumberOnly { + /** + * Constructs a new NumberOnly. + * @alias module:model/NumberOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.NumberOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a NumberOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/NumberOnly} obj Optional instance to populate. + * @return {module:model/NumberOnly} The populated NumberOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new NumberOnly(); + + + - - /** - * The NumberOnly model module. - * @module model/NumberOnly - * @version 1.0.0 - */ - - /** - * Constructs a new NumberOnly. - * @alias module:model/NumberOnly - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a NumberOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/NumberOnly} obj Optional instance to populate. - * @return {module:model/NumberOnly} The populated NumberOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('JustNumber')) { - obj['JustNumber'] = ApiClient.convertToType(data['JustNumber'], 'Number'); - } + if (data.hasOwnProperty('JustNumber')) { + obj['JustNumber'] = ApiClient.convertToType(data['JustNumber'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} JustNumber - */ - exports.prototype['JustNumber'] = undefined; + /** + * @member {Number} JustNumber + */ + JustNumber = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Order.js b/samples/client/petstore/javascript-es6/src/model/Order.js index f4f9087001d..ff704900bbc 100644 --- a/samples/client/petstore/javascript-es6/src/model/Order.js +++ b/samples/client/petstore/javascript-es6/src/model/Order.js @@ -7,140 +7,137 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Order model module. +* @module model/Order +* @version 1.0.0 +*/ +export default class Order { + /** + * Constructs a new Order. + * @alias module:model/Order + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Order = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Order from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Order} obj Optional instance to populate. + * @return {module:model/Order} The populated Order instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Order(); + + + - - /** - * The Order model module. - * @module model/Order - * @version 1.0.0 - */ - - /** - * Constructs a new Order. - * @alias module:model/Order - * @class - */ - var exports = function() { - var _this = this; - - - - - - - - }; - - /** - * Constructs a Order from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Order} obj Optional instance to populate. - * @return {module:model/Order} The populated Order instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('petId')) { - obj['petId'] = ApiClient.convertToType(data['petId'], 'Number'); - } - if (data.hasOwnProperty('quantity')) { - obj['quantity'] = ApiClient.convertToType(data['quantity'], 'Number'); - } - if (data.hasOwnProperty('shipDate')) { - obj['shipDate'] = ApiClient.convertToType(data['shipDate'], 'Date'); - } - if (data.hasOwnProperty('status')) { - obj['status'] = ApiClient.convertToType(data['status'], 'String'); - } - if (data.hasOwnProperty('complete')) { - obj['complete'] = ApiClient.convertToType(data['complete'], 'Boolean'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('petId')) { + obj['petId'] = ApiClient.convertToType(data['petId'], 'Number'); + } + if (data.hasOwnProperty('quantity')) { + obj['quantity'] = ApiClient.convertToType(data['quantity'], 'Number'); + } + if (data.hasOwnProperty('shipDate')) { + obj['shipDate'] = ApiClient.convertToType(data['shipDate'], 'Date'); + } + if (data.hasOwnProperty('status')) { + obj['status'] = ApiClient.convertToType(data['status'], 'String'); + } + if (data.hasOwnProperty('complete')) { + obj['complete'] = ApiClient.convertToType(data['complete'], 'Boolean'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {Number} petId - */ - exports.prototype['petId'] = undefined; - /** - * @member {Number} quantity - */ - exports.prototype['quantity'] = undefined; - /** - * @member {Date} shipDate - */ - exports.prototype['shipDate'] = undefined; - /** - * Order Status - * @member {module:model/Order.StatusEnum} status - */ - exports.prototype['status'] = undefined; - /** - * @member {Boolean} complete - * @default false - */ - exports.prototype['complete'] = false; - - - /** - * Allowed values for the status property. - * @enum {String} - * @readonly - */ - exports.StatusEnum = { /** - * value: "placed" - * @const - */ - "placed": "placed", + * @member {Number} id + */ + id = undefined; /** - * value: "approved" - * @const - */ - "approved": "approved", + * @member {Number} petId + */ + petId = undefined; /** - * value: "delivered" - * @const - */ - "delivered": "delivered" }; + * @member {Number} quantity + */ + quantity = undefined; + /** + * @member {Date} shipDate + */ + shipDate = undefined; + /** + * Order Status + * @member {module:model/Order.StatusEnum} status + */ + status = undefined; + /** + * @member {Boolean} complete + * @default false + */ + complete = false; - return exports; -})); + + + + + /** + * Allowed values for the status property. + * @enum {String} + * @readonly + */ + static StatusEnum = { + + /** + * value: "placed" + * @const + */ + "placed": "placed", + + /** + * value: "approved" + * @const + */ + "approved": "approved", + + /** + * value: "delivered" + * @const + */ + "delivered": "delivered" + }; + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/OuterBoolean.js b/samples/client/petstore/javascript-es6/src/model/OuterBoolean.js index 80f1a64b99b..592a0b69864 100644 --- a/samples/client/petstore/javascript-es6/src/model/OuterBoolean.js +++ b/samples/client/petstore/javascript-es6/src/model/OuterBoolean.js @@ -7,68 +7,67 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The OuterBoolean model module. +* @module model/OuterBoolean +* @version 1.0.0 +*/ +export default class OuterBoolean { + /** + * Constructs a new OuterBoolean. + * @alias module:model/OuterBoolean + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterBoolean = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a OuterBoolean from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterBoolean} obj Optional instance to populate. + * @return {module:model/OuterBoolean} The populated OuterBoolean instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterBoolean(); + + + - - /** - * The OuterBoolean model module. - * @module model/OuterBoolean - * @version 1.0.0 - */ - - /** - * Constructs a new OuterBoolean. - * @alias module:model/OuterBoolean - * @class - */ - var exports = function() { - var _this = this; - - }; - - /** - * Constructs a OuterBoolean from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterBoolean} obj Optional instance to populate. - * @return {module:model/OuterBoolean} The populated OuterBoolean instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/OuterComposite.js b/samples/client/petstore/javascript-es6/src/model/OuterComposite.js index 2a40ec942b5..327e303467a 100644 --- a/samples/client/petstore/javascript-es6/src/model/OuterComposite.js +++ b/samples/client/petstore/javascript-es6/src/model/OuterComposite.js @@ -7,92 +7,91 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/OuterBoolean', 'model/OuterNumber', 'model/OuterString'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./OuterBoolean'), require('./OuterNumber'), require('./OuterString')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import OuterBoolean from './OuterBoolean'; +import OuterNumber from './OuterNumber'; +import OuterString from './OuterString'; + + + + + +/** +* The OuterComposite model module. +* @module model/OuterComposite +* @version 1.0.0 +*/ +export default class OuterComposite { + /** + * Constructs a new OuterComposite. + * @alias module:model/OuterComposite + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterComposite = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.OuterBoolean, root.SwaggerPetstore.OuterNumber, root.SwaggerPetstore.OuterString); - } -}(this, function(ApiClient, OuterBoolean, OuterNumber, OuterString) { - 'use strict'; + /** + * Constructs a OuterComposite from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterComposite} obj Optional instance to populate. + * @return {module:model/OuterComposite} The populated OuterComposite instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterComposite(); + + + - - /** - * The OuterComposite model module. - * @module model/OuterComposite - * @version 1.0.0 - */ - - /** - * Constructs a new OuterComposite. - * @alias module:model/OuterComposite - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a OuterComposite from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterComposite} obj Optional instance to populate. - * @return {module:model/OuterComposite} The populated OuterComposite instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('my_number')) { - obj['my_number'] = OuterNumber.constructFromObject(data['my_number']); - } - if (data.hasOwnProperty('my_string')) { - obj['my_string'] = OuterString.constructFromObject(data['my_string']); - } - if (data.hasOwnProperty('my_boolean')) { - obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']); - } + if (data.hasOwnProperty('my_number')) { + obj['my_number'] = OuterNumber.constructFromObject(data['my_number']); + } + if (data.hasOwnProperty('my_string')) { + obj['my_string'] = OuterString.constructFromObject(data['my_string']); + } + if (data.hasOwnProperty('my_boolean')) { + obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']); + } + } + return obj; } - return obj; - } - /** - * @member {module:model/OuterNumber} my_number - */ - exports.prototype['my_number'] = undefined; - /** - * @member {module:model/OuterString} my_string - */ - exports.prototype['my_string'] = undefined; - /** - * @member {module:model/OuterBoolean} my_boolean - */ - exports.prototype['my_boolean'] = undefined; + /** + * @member {module:model/OuterNumber} my_number + */ + my_number = undefined; + /** + * @member {module:model/OuterString} my_string + */ + my_string = undefined; + /** + * @member {module:model/OuterBoolean} my_boolean + */ + my_boolean = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/OuterEnum.js b/samples/client/petstore/javascript-es6/src/model/OuterEnum.js index 4ba975cf97a..bf264fd8f64 100644 --- a/samples/client/petstore/javascript-es6/src/model/OuterEnum.js +++ b/samples/client/petstore/javascript-es6/src/model/OuterEnum.js @@ -7,63 +7,51 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + +/** +* Enum class OuterEnum. +* @enum {} +* @readonly +*/ +export default class OuterEnum { + + /** + * value: "placed" + * @const + */ + placed = "placed"; + + + /** + * value: "approved" + * @const + */ + approved = "approved"; + + + /** + * value: "delivered" + * @const + */ + delivered = "delivered"; + + + + /** + * Returns a OuterEnum enum value from a Javascript object name. + * @param {Object} data The plain JavaScript object containing the name of the enum value. + * @return {module:model/OuterEnum} The enum OuterEnum value. + */ + static constructFromObject(object) { + return object; } - root.SwaggerPetstore.OuterEnum = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; - - - /** - * Enum class OuterEnum. - * @enum {} - * @readonly - */ - var exports = { - /** - * value: "placed" - * @const - */ - "placed": "placed", - /** - * value: "approved" - * @const - */ - "approved": "approved", - /** - * value: "delivered" - * @const - */ - "delivered": "delivered" }; - - /** - * Returns a OuterEnum enum value from a Javascript object name. - * @param {Object} data The plain JavaScript object containing the name of the enum value. - * @return {module:model/OuterEnum} The enum OuterEnum value. - */ - exports.constructFromObject = function(object) { - return object; - } - - return exports; -})); +} diff --git a/samples/client/petstore/javascript-es6/src/model/OuterNumber.js b/samples/client/petstore/javascript-es6/src/model/OuterNumber.js index f3ab0768253..ff65b1588b7 100644 --- a/samples/client/petstore/javascript-es6/src/model/OuterNumber.js +++ b/samples/client/petstore/javascript-es6/src/model/OuterNumber.js @@ -7,68 +7,67 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The OuterNumber model module. +* @module model/OuterNumber +* @version 1.0.0 +*/ +export default class OuterNumber { + /** + * Constructs a new OuterNumber. + * @alias module:model/OuterNumber + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterNumber = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a OuterNumber from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterNumber} obj Optional instance to populate. + * @return {module:model/OuterNumber} The populated OuterNumber instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterNumber(); + + + - - /** - * The OuterNumber model module. - * @module model/OuterNumber - * @version 1.0.0 - */ - - /** - * Constructs a new OuterNumber. - * @alias module:model/OuterNumber - * @class - */ - var exports = function() { - var _this = this; - - }; - - /** - * Constructs a OuterNumber from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterNumber} obj Optional instance to populate. - * @return {module:model/OuterNumber} The populated OuterNumber instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/OuterString.js b/samples/client/petstore/javascript-es6/src/model/OuterString.js index 9edb9747a67..6921029ede1 100644 --- a/samples/client/petstore/javascript-es6/src/model/OuterString.js +++ b/samples/client/petstore/javascript-es6/src/model/OuterString.js @@ -7,68 +7,67 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The OuterString model module. +* @module model/OuterString +* @version 1.0.0 +*/ +export default class OuterString { + /** + * Constructs a new OuterString. + * @alias module:model/OuterString + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterString = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a OuterString from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterString} obj Optional instance to populate. + * @return {module:model/OuterString} The populated OuterString instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterString(); + + + - - /** - * The OuterString model module. - * @module model/OuterString - * @version 1.0.0 - */ - - /** - * Constructs a new OuterString. - * @alias module:model/OuterString - * @class - */ - var exports = function() { - var _this = this; - - }; - - /** - * Constructs a OuterString from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterString} obj Optional instance to populate. - * @return {module:model/OuterString} The populated OuterString instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Pet.js b/samples/client/petstore/javascript-es6/src/model/Pet.js index d5e8d5010ac..bb849152027 100644 --- a/samples/client/petstore/javascript-es6/src/model/Pet.js +++ b/samples/client/petstore/javascript-es6/src/model/Pet.js @@ -7,141 +7,140 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Category', 'model/Tag'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Category'), require('./Tag')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Category from './Category'; +import Tag from './Tag'; + + + + + +/** +* The Pet model module. +* @module model/Pet +* @version 1.0.0 +*/ +export default class Pet { + /** + * Constructs a new Pet. + * @alias module:model/Pet + * @class + * @param name {String} + * @param photoUrls {Array.} + */ + + constructor(name, photoUrls) { + + + + + + this['name'] = name;this['photoUrls'] = photoUrls; + + } - root.SwaggerPetstore.Pet = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Category, root.SwaggerPetstore.Tag); - } -}(this, function(ApiClient, Category, Tag) { - 'use strict'; + /** + * Constructs a Pet from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Pet} obj Optional instance to populate. + * @return {module:model/Pet} The populated Pet instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Pet(); + + + - - /** - * The Pet model module. - * @module model/Pet - * @version 1.0.0 - */ - - /** - * Constructs a new Pet. - * @alias module:model/Pet - * @class - * @param name {String} - * @param photoUrls {Array.} - */ - var exports = function(name, photoUrls) { - var _this = this; - - - - _this['name'] = name; - _this['photoUrls'] = photoUrls; - - - }; - - /** - * Constructs a Pet from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Pet} obj Optional instance to populate. - * @return {module:model/Pet} The populated Pet instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('category')) { - obj['category'] = Category.constructFromObject(data['category']); - } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } - if (data.hasOwnProperty('photoUrls')) { - obj['photoUrls'] = ApiClient.convertToType(data['photoUrls'], ['String']); - } - if (data.hasOwnProperty('tags')) { - obj['tags'] = ApiClient.convertToType(data['tags'], [Tag]); - } - if (data.hasOwnProperty('status')) { - obj['status'] = ApiClient.convertToType(data['status'], 'String'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('category')) { + obj['category'] = Category.constructFromObject(data['category']); + } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'String'); + } + if (data.hasOwnProperty('photoUrls')) { + obj['photoUrls'] = ApiClient.convertToType(data['photoUrls'], ['String']); + } + if (data.hasOwnProperty('tags')) { + obj['tags'] = ApiClient.convertToType(data['tags'], [Tag]); + } + if (data.hasOwnProperty('status')) { + obj['status'] = ApiClient.convertToType(data['status'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {module:model/Category} category - */ - exports.prototype['category'] = undefined; - /** - * @member {String} name - */ - exports.prototype['name'] = undefined; - /** - * @member {Array.} photoUrls - */ - exports.prototype['photoUrls'] = undefined; - /** - * @member {Array.} tags - */ - exports.prototype['tags'] = undefined; - /** - * pet status in the store - * @member {module:model/Pet.StatusEnum} status - */ - exports.prototype['status'] = undefined; - - - /** - * Allowed values for the status property. - * @enum {String} - * @readonly - */ - exports.StatusEnum = { /** - * value: "available" - * @const - */ - "available": "available", + * @member {Number} id + */ + id = undefined; /** - * value: "pending" - * @const - */ - "pending": "pending", + * @member {module:model/Category} category + */ + category = undefined; /** - * value: "sold" - * @const - */ - "sold": "sold" }; + * @member {String} name + */ + name = undefined; + /** + * @member {Array.} photoUrls + */ + photoUrls = undefined; + /** + * @member {Array.} tags + */ + tags = undefined; + /** + * pet status in the store + * @member {module:model/Pet.StatusEnum} status + */ + status = undefined; - return exports; -})); + + + + + /** + * Allowed values for the status property. + * @enum {String} + * @readonly + */ + static StatusEnum = { + + /** + * value: "available" + * @const + */ + "available": "available", + + /** + * value: "pending" + * @const + */ + "pending": "pending", + + /** + * value: "sold" + * @const + */ + "sold": "sold" + }; + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js b/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js index 91612f15351..143b34f3eb1 100644 --- a/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js +++ b/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ReadOnlyFirst model module. +* @module model/ReadOnlyFirst +* @version 1.0.0 +*/ +export default class ReadOnlyFirst { + /** + * Constructs a new ReadOnlyFirst. + * @alias module:model/ReadOnlyFirst + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ReadOnlyFirst = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ReadOnlyFirst from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ReadOnlyFirst} obj Optional instance to populate. + * @return {module:model/ReadOnlyFirst} The populated ReadOnlyFirst instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ReadOnlyFirst(); + + + - - /** - * The ReadOnlyFirst model module. - * @module model/ReadOnlyFirst - * @version 1.0.0 - */ - - /** - * Constructs a new ReadOnlyFirst. - * @alias module:model/ReadOnlyFirst - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a ReadOnlyFirst from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ReadOnlyFirst} obj Optional instance to populate. - * @return {module:model/ReadOnlyFirst} The populated ReadOnlyFirst instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('bar')) { - obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); - } - if (data.hasOwnProperty('baz')) { - obj['baz'] = ApiClient.convertToType(data['baz'], 'String'); - } + if (data.hasOwnProperty('bar')) { + obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); + } + if (data.hasOwnProperty('baz')) { + obj['baz'] = ApiClient.convertToType(data['baz'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} bar - */ - exports.prototype['bar'] = undefined; - /** - * @member {String} baz - */ - exports.prototype['baz'] = undefined; + /** + * @member {String} bar + */ + bar = undefined; + /** + * @member {String} baz + */ + baz = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js b/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js index bb13c09d956..4e0dd379b19 100644 --- a/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js +++ b/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The SpecialModelName model module. +* @module model/SpecialModelName +* @version 1.0.0 +*/ +export default class SpecialModelName { + /** + * Constructs a new SpecialModelName. + * @alias module:model/SpecialModelName + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.SpecialModelName = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a SpecialModelName from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/SpecialModelName} obj Optional instance to populate. + * @return {module:model/SpecialModelName} The populated SpecialModelName instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new SpecialModelName(); + + + - - /** - * The SpecialModelName model module. - * @module model/SpecialModelName - * @version 1.0.0 - */ - - /** - * Constructs a new SpecialModelName. - * @alias module:model/SpecialModelName - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a SpecialModelName from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SpecialModelName} obj Optional instance to populate. - * @return {module:model/SpecialModelName} The populated SpecialModelName instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('$special[property.name]')) { - obj['$special[property.name]'] = ApiClient.convertToType(data['$special[property.name]'], 'Number'); - } + if (data.hasOwnProperty('$special[property.name]')) { + obj['$special[property.name]'] = ApiClient.convertToType(data['$special[property.name]'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} $special[property.name] - */ - exports.prototype['$special[property.name]'] = undefined; + /** + * @member {Number} $special[property.name] + */ + $special[property.name] = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/Tag.js b/samples/client/petstore/javascript-es6/src/model/Tag.js index 1066827e11e..759b3fa04e3 100644 --- a/samples/client/petstore/javascript-es6/src/model/Tag.js +++ b/samples/client/petstore/javascript-es6/src/model/Tag.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Tag model module. +* @module model/Tag +* @version 1.0.0 +*/ +export default class Tag { + /** + * Constructs a new Tag. + * @alias module:model/Tag + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Tag = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Tag from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Tag} obj Optional instance to populate. + * @return {module:model/Tag} The populated Tag instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Tag(); + + + - - /** - * The Tag model module. - * @module model/Tag - * @version 1.0.0 - */ - - /** - * Constructs a new Tag. - * @alias module:model/Tag - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a Tag from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Tag} obj Optional instance to populate. - * @return {module:model/Tag} The populated Tag instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {String} name - */ - exports.prototype['name'] = undefined; + /** + * @member {Number} id + */ + id = undefined; + /** + * @member {String} name + */ + name = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-es6/src/model/User.js b/samples/client/petstore/javascript-es6/src/model/User.js index e96af875697..36311e75938 100644 --- a/samples/client/petstore/javascript-es6/src/model/User.js +++ b/samples/client/petstore/javascript-es6/src/model/User.js @@ -7,133 +7,124 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The User model module. +* @module model/User +* @version 1.0.0 +*/ +export default class User { + /** + * Constructs a new User. + * @alias module:model/User + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.User = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a User from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/User} obj Optional instance to populate. + * @return {module:model/User} The populated User instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new User(); + + + - - /** - * The User model module. - * @module model/User - * @version 1.0.0 - */ - - /** - * Constructs a new User. - * @alias module:model/User - * @class - */ - var exports = function() { - var _this = this; - - - - - - - - - - }; - - /** - * Constructs a User from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/User} obj Optional instance to populate. - * @return {module:model/User} The populated User instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('username')) { - obj['username'] = ApiClient.convertToType(data['username'], 'String'); - } - if (data.hasOwnProperty('firstName')) { - obj['firstName'] = ApiClient.convertToType(data['firstName'], 'String'); - } - if (data.hasOwnProperty('lastName')) { - obj['lastName'] = ApiClient.convertToType(data['lastName'], 'String'); - } - if (data.hasOwnProperty('email')) { - obj['email'] = ApiClient.convertToType(data['email'], 'String'); - } - if (data.hasOwnProperty('password')) { - obj['password'] = ApiClient.convertToType(data['password'], 'String'); - } - if (data.hasOwnProperty('phone')) { - obj['phone'] = ApiClient.convertToType(data['phone'], 'String'); - } - if (data.hasOwnProperty('userStatus')) { - obj['userStatus'] = ApiClient.convertToType(data['userStatus'], 'Number'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('username')) { + obj['username'] = ApiClient.convertToType(data['username'], 'String'); + } + if (data.hasOwnProperty('firstName')) { + obj['firstName'] = ApiClient.convertToType(data['firstName'], 'String'); + } + if (data.hasOwnProperty('lastName')) { + obj['lastName'] = ApiClient.convertToType(data['lastName'], 'String'); + } + if (data.hasOwnProperty('email')) { + obj['email'] = ApiClient.convertToType(data['email'], 'String'); + } + if (data.hasOwnProperty('password')) { + obj['password'] = ApiClient.convertToType(data['password'], 'String'); + } + if (data.hasOwnProperty('phone')) { + obj['phone'] = ApiClient.convertToType(data['phone'], 'String'); + } + if (data.hasOwnProperty('userStatus')) { + obj['userStatus'] = ApiClient.convertToType(data['userStatus'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {String} username - */ - exports.prototype['username'] = undefined; - /** - * @member {String} firstName - */ - exports.prototype['firstName'] = undefined; - /** - * @member {String} lastName - */ - exports.prototype['lastName'] = undefined; - /** - * @member {String} email - */ - exports.prototype['email'] = undefined; - /** - * @member {String} password - */ - exports.prototype['password'] = undefined; - /** - * @member {String} phone - */ - exports.prototype['phone'] = undefined; - /** - * User Status - * @member {Number} userStatus - */ - exports.prototype['userStatus'] = undefined; + /** + * @member {Number} id + */ + id = undefined; + /** + * @member {String} username + */ + username = undefined; + /** + * @member {String} firstName + */ + firstName = undefined; + /** + * @member {String} lastName + */ + lastName = undefined; + /** + * @member {String} email + */ + email = undefined; + /** + * @member {String} password + */ + password = undefined; + /** + * @member {String} phone + */ + phone = undefined; + /** + * User Status + * @member {Number} userStatus + */ + userStatus = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md b/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md index 7bfea4df889..d26ee4e74bf 100644 --- a/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md +++ b/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md @@ -23,16 +23,16 @@ Test serialization of outer boolean types ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterBoolean() // OuterBoolean | Input boolean as post body }; -apiInstance.fakeOuterBooleanSerialize(opts).then(function(data) { +apiInstance.fakeOuterBooleanSerialize(opts).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -67,16 +67,16 @@ Test serialization of object with outer number type ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterComposite() // OuterComposite | Input composite as post body }; -apiInstance.fakeOuterCompositeSerialize(opts).then(function(data) { +apiInstance.fakeOuterCompositeSerialize(opts).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -111,16 +111,16 @@ Test serialization of outer number types ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterNumber() // OuterNumber | Input number as post body }; -apiInstance.fakeOuterNumberSerialize(opts).then(function(data) { +apiInstance.fakeOuterNumberSerialize(opts).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -155,16 +155,16 @@ Test serialization of outer string types ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'body': new SwaggerPetstore.OuterString() // OuterString | Input string as post body }; -apiInstance.fakeOuterStringSerialize(opts).then(function(data) { +apiInstance.fakeOuterStringSerialize(opts).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -199,15 +199,15 @@ To test \"client\" model ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var body = new SwaggerPetstore.Client(); // Client | client model +let body = new SwaggerPetstore.Client(); // Client | client model -apiInstance.testClientModel(body).then(function(data) { +apiInstance.testClientModel(body).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -242,25 +242,25 @@ Fake endpoint for testing various parameters 假端點 偽のエンドポイン ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure HTTP basic authorization: http_basic_test -var http_basic_test = defaultClient.authentications['http_basic_test']; +let http_basic_test = defaultClient.authentications['http_basic_test']; http_basic_test.username = 'YOUR USERNAME'; http_basic_test.password = 'YOUR PASSWORD'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var _number = 3.4; // Number | None +let _number = 3.4; // Number | None -var _double = 1.2; // Number | None +let _double = 1.2; // Number | None -var patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None +let patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None -var _byte = B; // Blob | None +let _byte = B; // Blob | None -var opts = { +let opts = { 'integer': 56, // Number | None 'int32': 56, // Number | None 'int64': 789, // Number | None @@ -272,9 +272,9 @@ var opts = { 'password': "password_example", // String | None 'callback': "callback_example" // String | None }; -apiInstance.testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts).then(function() { +apiInstance.testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -322,11 +322,11 @@ To test enum parameters ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.FakeApi(); +let apiInstance = new SwaggerPetstore.FakeApi(); -var opts = { +let opts = { 'enumFormStringArray': ["enumFormStringArray_example"], // [String] | Form parameter enum test (string array) 'enumFormString': "-efg", // String | Form parameter enum test (string) 'enumHeaderStringArray': ["enumHeaderStringArray_example"], // [String] | Header parameter enum test (string array) @@ -336,9 +336,9 @@ var opts = { 'enumQueryInteger': 56, // Number | Query parameter enum test (double) 'enumQueryDouble': 1.2 // Number | Query parameter enum test (double) }; -apiInstance.testEnumParameters(opts).then(function() { +apiInstance.testEnumParameters(opts).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); diff --git a/samples/client/petstore/javascript-promise-es6/docs/PetApi.md b/samples/client/petstore/javascript-promise-es6/docs/PetApi.md index 8b88dab5f5c..1d5d78f6d7a 100644 --- a/samples/client/petstore/javascript-promise-es6/docs/PetApi.md +++ b/samples/client/petstore/javascript-promise-es6/docs/PetApi.md @@ -24,20 +24,20 @@ Add a new pet to the store ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store +let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store -apiInstance.addPet(body).then(function() { +apiInstance.addPet(body).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -72,23 +72,23 @@ Deletes a pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | Pet id to delete +let petId = 789; // Number | Pet id to delete -var opts = { +let opts = { 'apiKey': "apiKey_example" // String | }; -apiInstance.deletePet(petId, opts).then(function() { +apiInstance.deletePet(petId, opts).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -124,20 +124,20 @@ Multiple status values can be provided with comma separated strings ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var status = ["status_example"]; // [String] | Status values that need to be considered for filter +let status = ["status_example"]; // [String] | Status values that need to be considered for filter -apiInstance.findPetsByStatus(status).then(function(data) { +apiInstance.findPetsByStatus(status).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -172,20 +172,20 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var tags = ["tags_example"]; // [String] | Tags to filter by +let tags = ["tags_example"]; // [String] | Tags to filter by -apiInstance.findPetsByTags(tags).then(function(data) { +apiInstance.findPetsByTags(tags).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -220,22 +220,22 @@ Returns a single pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure API key authorization: api_key -var api_key = defaultClient.authentications['api_key']; +let api_key = defaultClient.authentications['api_key']; api_key.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key.apiKeyPrefix = 'Token'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | ID of pet to return +let petId = 789; // Number | ID of pet to return -apiInstance.getPetById(petId).then(function(data) { +apiInstance.getPetById(petId).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -270,20 +270,20 @@ Update an existing pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store +let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store -apiInstance.updatePet(body).then(function() { +apiInstance.updatePet(body).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -318,24 +318,24 @@ Updates a pet in the store with form data ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | ID of pet that needs to be updated +let petId = 789; // Number | ID of pet that needs to be updated -var opts = { +let opts = { 'name': "name_example", // String | Updated name of the pet 'status': "status_example" // String | Updated status of the pet }; -apiInstance.updatePetWithForm(petId, opts).then(function() { +apiInstance.updatePetWithForm(petId, opts).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -372,24 +372,24 @@ uploads an image ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth -var petstore_auth = defaultClient.authentications['petstore_auth']; +let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -var apiInstance = new SwaggerPetstore.PetApi(); +let apiInstance = new SwaggerPetstore.PetApi(); -var petId = 789; // Number | ID of pet to update +let petId = 789; // Number | ID of pet to update -var opts = { +let opts = { 'additionalMetadata': "additionalMetadata_example", // String | Additional data to pass to server 'file': "/path/to/file.txt" // File | file to upload }; -apiInstance.uploadFile(petId, opts).then(function(data) { +apiInstance.uploadFile(petId, opts).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); diff --git a/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md b/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md index e0771378536..9f931097e03 100644 --- a/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md +++ b/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md @@ -20,15 +20,15 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var orderId = "orderId_example"; // String | ID of the order that needs to be deleted +let orderId = "orderId_example"; // String | ID of the order that needs to be deleted -apiInstance.deleteOrder(orderId).then(function() { +apiInstance.deleteOrder(orderId).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -63,19 +63,19 @@ Returns a map of status codes to quantities ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); -var defaultClient = SwaggerPetstore.ApiClient.instance; +import SwaggerPetstore from 'swagger_petstore'; +let defaultClient = SwaggerPetstore.ApiClient.instance; // Configure API key authorization: api_key -var api_key = defaultClient.authentications['api_key']; +let api_key = defaultClient.authentications['api_key']; api_key.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key.apiKeyPrefix = 'Token'; -var apiInstance = new SwaggerPetstore.StoreApi(); -apiInstance.getInventory().then(function(data) { +let apiInstance = new SwaggerPetstore.StoreApi(); +apiInstance.getInventory().then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -107,15 +107,15 @@ For valid response try integer IDs with value <= 5 or > 10. Other val ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var orderId = 789; // Number | ID of pet that needs to be fetched +let orderId = 789; // Number | ID of pet that needs to be fetched -apiInstance.getOrderById(orderId).then(function(data) { +apiInstance.getOrderById(orderId).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -150,15 +150,15 @@ Place an order for a pet ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.StoreApi(); +let apiInstance = new SwaggerPetstore.StoreApi(); -var body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet +let body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet -apiInstance.placeOrder(body).then(function(data) { +apiInstance.placeOrder(body).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); diff --git a/samples/client/petstore/javascript-promise-es6/docs/UserApi.md b/samples/client/petstore/javascript-promise-es6/docs/UserApi.md index 3102a61d648..df53e06d15b 100644 --- a/samples/client/petstore/javascript-promise-es6/docs/UserApi.md +++ b/samples/client/petstore/javascript-promise-es6/docs/UserApi.md @@ -24,15 +24,15 @@ This can only be done by the logged in user. ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var body = new SwaggerPetstore.User(); // User | Created user object +let body = new SwaggerPetstore.User(); // User | Created user object -apiInstance.createUser(body).then(function() { +apiInstance.createUser(body).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -67,15 +67,15 @@ Creates list of users with given input array ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var body = [new SwaggerPetstore.User()]; // [User] | List of user object +let body = [new SwaggerPetstore.User()]; // [User] | List of user object -apiInstance.createUsersWithArrayInput(body).then(function() { +apiInstance.createUsersWithArrayInput(body).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -110,15 +110,15 @@ Creates list of users with given input array ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var body = [new SwaggerPetstore.User()]; // [User] | List of user object +let body = [new SwaggerPetstore.User()]; // [User] | List of user object -apiInstance.createUsersWithListInput(body).then(function() { +apiInstance.createUsersWithListInput(body).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -153,15 +153,15 @@ This can only be done by the logged in user. ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | The name that needs to be deleted +let username = "username_example"; // String | The name that needs to be deleted -apiInstance.deleteUser(username).then(function() { +apiInstance.deleteUser(username).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -196,15 +196,15 @@ Get user by user name ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. +let username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. -apiInstance.getUserByName(username).then(function(data) { +apiInstance.getUserByName(username).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -239,17 +239,17 @@ Logs user into the system ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | The user name for login +let username = "username_example"; // String | The user name for login -var password = "password_example"; // String | The password for login in clear text +let password = "password_example"; // String | The password for login in clear text -apiInstance.loginUser(username, password).then(function(data) { +apiInstance.loginUser(username, password).then((data) => { console.log('API called successfully. Returned data: ' + data); -}, function(error) { +}, (error) => { console.error(error); }); @@ -285,12 +285,12 @@ Logs out current logged in user session ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); -apiInstance.logoutUser().then(function() { +let apiInstance = new SwaggerPetstore.UserApi(); +apiInstance.logoutUser().then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); @@ -322,17 +322,17 @@ This can only be done by the logged in user. ### Example ```javascript -var SwaggerPetstore = require('swagger_petstore'); +import SwaggerPetstore from 'swagger_petstore'; -var apiInstance = new SwaggerPetstore.UserApi(); +let apiInstance = new SwaggerPetstore.UserApi(); -var username = "username_example"; // String | name that need to be deleted +let username = "username_example"; // String | name that need to be deleted -var body = new SwaggerPetstore.User(); // User | Updated user object +let body = new SwaggerPetstore.User(); // User | Updated user object -apiInstance.updateUser(username, body).then(function() { +apiInstance.updateUser(username, body).then(() => { console.log('API called successfully.'); -}, function(error) { +}, (error) => { console.error(error); }); diff --git a/samples/client/petstore/javascript-promise-es6/package.json b/samples/client/petstore/javascript-promise-es6/package.json index 881163c02f4..0332217891a 100644 --- a/samples/client/petstore/javascript-promise-es6/package.json +++ b/samples/client/petstore/javascript-promise-es6/package.json @@ -5,17 +5,22 @@ "license": "Unlicense", "main": "src/index.js", "scripts": { - "test": "./node_modules/mocha/bin/mocha --recursive" + "test": "mocha --compilers js:babel-core/register --recursive" }, "browser": { "fs": false }, "dependencies": { + "babel": "^6.23.0", + "babel-cli": "^6.24.1", "superagent": "3.5.2" }, "devDependencies": { + "babel-core": "6.18.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-stage-0": "^6.24.1", + "expect.js": "~0.3.1", "mocha": "~2.3.4", - "sinon": "1.17.3", - "expect.js": "~0.3.1" + "sinon": "1.17.3" } } diff --git a/samples/client/petstore/javascript-promise-es6/src/ApiClient.js b/samples/client/petstore/javascript-promise-es6/src/ApiClient.js index 76e1384fdb1..c7dcea0de86 100644 --- a/samples/client/petstore/javascript-promise-es6/src/ApiClient.js +++ b/samples/client/petstore/javascript-promise-es6/src/ApiClient.js @@ -7,553 +7,562 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['superagent', 'querystring'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('superagent'), require('querystring')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import superagent from "superagent"; +import querystring from "querystring"; + +/** +* @module ApiClient +* @version 1.0.0 +*/ + +/** +* Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an +* application to use this class directly - the *Api and model classes provide the public API for the service. The +* contents of this file should be regarded as internal but are documented for completeness. +* @alias module:ApiClient +* @class +*/ +export default class ApiClient { + constructor() { + /** + * The base URL against which to resolve every API call's (relative) path. + * @type {String} + * @default http://petstore.swagger.io:80/v2 + */ + this.basePath = 'http://petstore.swagger.io:80/v2'.replace(/\/+$/, ''); + + /** + * The authentication methods to be included for all API calls. + * @type {Array.} + */ + this.authentications = { + 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'}, + 'http_basic_test': {type: 'basic'}, + 'petstore_auth': {type: 'oauth2'} + } + + /** + * The default HTTP headers to be included for all API calls. + * @type {Array.} + * @default {} + */ + this.defaultHeaders = {}; + + /** + * The default HTTP timeout for all API calls. + * @type {Number} + * @default 60000 + */ + this.timeout = 60000; + + /** + * If set to false an additional timestamp parameter is added to all API GET calls to + * prevent browser caching + * @type {Boolean} + * @default true + */ + this.cache = true; + + /** + * If set to true, the client will save the cookies from each server + * response, and return them in the next request. + * @default false + */ + this.enableCookies = false; + + /* + * Used to save and return cookies in a node.js (non-browser) setting, + * if this.enableCookies is set to true. + */ + if (typeof window === 'undefined') { + this.agent = new superagent.agent(); + } } - root.SwaggerPetstore.ApiClient = factory(root.superagent, root.querystring); - } -}(this, function(superagent, querystring) { - 'use strict'; - - /** - * @module ApiClient - * @version 1.0.0 - */ - - /** - * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an - * application to use this class directly - the *Api and model classes provide the public API for the service. The - * contents of this file should be regarded as internal but are documented for completeness. - * @alias module:ApiClient - * @class - */ - var exports = function() { - /** - * The base URL against which to resolve every API call's (relative) path. - * @type {String} - * @default http://petstore.swagger.io:80/v2 - */ - this.basePath = 'http://petstore.swagger.io:80/v2'.replace(/\/+$/, ''); /** - * The authentication methods to be included for all API calls. - * @type {Array.} - */ - this.authentications = { - 'api_key': {type: 'apiKey', 'in': 'header', name: 'api_key'}, - 'http_basic_test': {type: 'basic'}, - 'petstore_auth': {type: 'oauth2'} + * Returns a string representation for an actual parameter. + * @param param The actual parameter. + * @returns {String} The string representation of param. + */ + paramToString(param) { + if (param == undefined || param == null) { + return ''; + } + if (param instanceof Date) { + return param.toJSON(); + } + + return param.toString(); + } + + /** + * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values. + * NOTE: query parameters are not handled here. + * @param {String} path The path to append to the base URL. + * @param {Object} pathParams The parameter values to append. + * @returns {String} The encoded path with parameter values substituted. + */ + buildUrl(path, pathParams) { + if (!path.match(/^\//)) { + path = '/' + path; + } + + var url = this.basePath + path; + url = url.replace(/\{([\w-]+)\}/g, (fullMatch, key) => { + var value; + if (pathParams.hasOwnProperty(key)) { + value = this.paramToString(pathParams[key]); + } else { + value = fullMatch; + } + + return encodeURIComponent(value); + }); + + return url; + } + + /** + * Checks whether the given content type represents JSON.
+ * JSON content type examples:
+ *
    + *
  • application/json
  • + *
  • application/json; charset=UTF8
  • + *
  • APPLICATION/JSON
  • + *
+ * @param {String} contentType The MIME content type to check. + * @returns {Boolean} true if contentType represents JSON, otherwise false. + */ + isJsonMime(contentType) { + return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i)); + } + + /** + * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first. + * @param {Array.} contentTypes + * @returns {String} The chosen content type, preferring JSON. + */ + jsonPreferredMime(contentTypes) { + for (var i = 0; i < contentTypes.length; i++) { + if (this.isJsonMime(contentTypes[i])) { + return contentTypes[i]; + } + } + + return contentTypes[0]; + } + + /** + * Checks whether the given parameter value represents file-like content. + * @param param The parameter to check. + * @returns {Boolean} true if param represents a file. + */ + isFileParam(param) { + // fs.ReadStream in Node.js and Electron (but not in runtime like browserify) + if (typeof require === 'function') { + let fs; + try { + fs = require('fs'); + } catch (err) {} + if (fs && fs.ReadStream && param instanceof fs.ReadStream) { + return true; + } + } + + // Buffer in Node.js + if (typeof Buffer === 'function' && param instanceof Buffer) { + return true; + } + + // Blob in browser + if (typeof Blob === 'function' && param instanceof Blob) { + return true; + } + + // File in browser (it seems File object is also instance of Blob, but keep this for safe) + if (typeof File === 'function' && param instanceof File) { + return true; + } + + return false; + } + + /** + * Normalizes parameter values: + *
    + *
  • remove nils
  • + *
  • keep files and arrays
  • + *
  • format to string with `paramToString` for other cases
  • + *
+ * @param {Object.} params The parameters as object properties. + * @returns {Object.} normalized parameters. + */ + normalizeParams(params) { + var newParams = {}; + for (var key in params) { + if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) { + var value = params[key]; + if (this.isFileParam(value) || Array.isArray(value)) { + newParams[key] = value; + } else { + newParams[key] = this.paramToString(value); + } + } + } + + return newParams; + } + + /** + * Enumeration of collection format separator strategies. + * @enum {String} + * @readonly + */ + static CollectionFormatEnum = { + /** + * Comma-separated values. Value: csv + * @const + */ + CSV: ',', + + /** + * Space-separated values. Value: ssv + * @const + */ + SSV: ' ', + + /** + * Tab-separated values. Value: tsv + * @const + */ + TSV: '\t', + + /** + * Pipe(|)-separated values. Value: pipes + * @const + */ + PIPES: '|', + + /** + * Native array. Value: multi + * @const + */ + MULTI: 'multi' }; - /** - * The default HTTP headers to be included for all API calls. - * @type {Array.} - * @default {} - */ - this.defaultHeaders = {}; /** - * The default HTTP timeout for all API calls. - * @type {Number} - * @default 60000 - */ - this.timeout = 60000; + * Builds a string representation of an array-type actual parameter, according to the given collection format. + * @param {Array} param An array parameter. + * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy. + * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns + * param as is if collectionFormat is multi. + */ + buildCollectionParam(param, collectionFormat) { + if (param == null) { + return null; + } + switch (collectionFormat) { + case 'csv': + return param.map(this.paramToString).join(','); + case 'ssv': + return param.map(this.paramToString).join(' '); + case 'tsv': + return param.map(this.paramToString).join('\t'); + case 'pipes': + return param.map(this.paramToString).join('|'); + case 'multi': + //return the array directly as SuperAgent will handle it as expected + return param.map(this.paramToString); + default: + throw new Error('Unknown collection format: ' + collectionFormat); + } + } /** - * If set to false an additional timestamp parameter is added to all API GET calls to - * prevent browser caching - * @type {Boolean} - * @default true - */ - this.cache = true; + * Applies authentication headers to the request. + * @param {Object} request The request object created by a superagent() call. + * @param {Array.} authNames An array of authentication method names. + */ + applyAuthToRequest(request, authNames) { + authNames.forEach((authName) => { + var auth = this.authentications[authName]; + switch (auth.type) { + case 'basic': + if (auth.username || auth.password) { + request.auth(auth.username || '', auth.password || ''); + } + + break; + case 'apiKey': + if (auth.apiKey) { + var data = {}; + if (auth.apiKeyPrefix) { + data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey; + } else { + data[auth.name] = auth.apiKey; + } + + if (auth['in'] === 'header') { + request.set(data); + } else { + request.query(data); + } + } + + break; + case 'oauth2': + if (auth.accessToken) { + request.set({'Authorization': 'Bearer ' + auth.accessToken}); + } + + break; + default: + throw new Error('Unknown authentication type: ' + auth.type); + } + }); + } /** - * If set to true, the client will save the cookies from each server - * response, and return them in the next request. - * @default false - */ - this.enableCookies = false; + * Deserializes an HTTP response body into a value of the specified type. + * @param {Object} response A SuperAgent response object. + * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types + * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To + * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: + * all properties on data will be converted to this type. + * @returns A value of the specified type. + */ + deserialize(response, returnType) { + if (response == null || returnType == null || response.status == 204) { + return null; + } - /* - * Used to save and return cookies in a node.js (non-browser) setting, - * if this.enableCookies is set to true. - */ - if (typeof window === 'undefined') { - this.agent = new superagent.agent(); + // Rely on SuperAgent for parsing response body. + // See http://visionmedia.github.io/superagent/#parsing-response-bodies + var data = response.body; + if (data == null || (typeof data === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length)) { + // SuperAgent does not always produce a body; use the unparsed response as a fallback + data = response.text; + } + + return ApiClient.convertToType(data, returnType); } - }; + - /** - * Returns a string representation for an actual parameter. - * @param param The actual parameter. - * @returns {String} The string representation of param. - */ - exports.prototype.paramToString = function(param) { - if (param == undefined || param == null) { - return ''; - } - if (param instanceof Date) { - return param.toJSON(); - } - return param.toString(); - }; + /** + * Invokes the REST service using the supplied settings and parameters. + * @param {String} path The base URL to invoke. + * @param {String} httpMethod The HTTP method to use. + * @param {Object.} pathParams A map of path parameters and their values. + * @param {Object.} queryParams A map of query parameters and their values. + * @param {Object.} headerParams A map of header parameters and their values. + * @param {Object.} formParams A map of form parameters and their values. + * @param {Object} bodyParam The value to pass as the request body. + * @param {Array.} authNames An array of authentication type names. + * @param {Array.} contentTypes An array of request MIME types. + * @param {Array.} accepts An array of acceptable response MIME types. + * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the + * constructor for a complex type. + * @returns {Promise} A {@link https://www.promisejs.org/|Promise} object. + */ + callApi(path, httpMethod, pathParams, + queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, + returnType) { - /** - * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values. - * NOTE: query parameters are not handled here. - * @param {String} path The path to append to the base URL. - * @param {Object} pathParams The parameter values to append. - * @returns {String} The encoded path with parameter values substituted. - */ - exports.prototype.buildUrl = function(path, pathParams) { - if (!path.match(/^\//)) { - path = '/' + path; - } - var url = this.basePath + path; - var _this = this; - url = url.replace(/\{([\w-]+)\}/g, function(fullMatch, key) { - var value; - if (pathParams.hasOwnProperty(key)) { - value = _this.paramToString(pathParams[key]); - } else { - value = fullMatch; - } - return encodeURIComponent(value); - }); - return url; - }; + var url = this.buildUrl(path, pathParams); + var request = superagent(httpMethod, url); - /** - * Checks whether the given content type represents JSON.
- * JSON content type examples:
- *
    - *
  • application/json
  • - *
  • application/json; charset=UTF8
  • - *
  • APPLICATION/JSON
  • - *
- * @param {String} contentType The MIME content type to check. - * @returns {Boolean} true if contentType represents JSON, otherwise false. - */ - exports.prototype.isJsonMime = function(contentType) { - return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i)); - }; + // apply authentications + this.applyAuthToRequest(request, authNames); - /** - * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first. - * @param {Array.} contentTypes - * @returns {String} The chosen content type, preferring JSON. - */ - exports.prototype.jsonPreferredMime = function(contentTypes) { - for (var i = 0; i < contentTypes.length; i++) { - if (this.isJsonMime(contentTypes[i])) { - return contentTypes[i]; - } - } - return contentTypes[0]; - }; + // set query parameters + if (httpMethod.toUpperCase() === 'GET' && this.cache === false) { + queryParams['_'] = new Date().getTime(); + } - /** - * Checks whether the given parameter value represents file-like content. - * @param param The parameter to check. - * @returns {Boolean} true if param represents a file. - */ - exports.prototype.isFileParam = function(param) { - // fs.ReadStream in Node.js and Electron (but not in runtime like browserify) - if (typeof require === 'function') { - var fs; - try { - fs = require('fs'); - } catch (err) {} - if (fs && fs.ReadStream && param instanceof fs.ReadStream) { - return true; - } - } - // Buffer in Node.js - if (typeof Buffer === 'function' && param instanceof Buffer) { - return true; - } - // Blob in browser - if (typeof Blob === 'function' && param instanceof Blob) { - return true; - } - // File in browser (it seems File object is also instance of Blob, but keep this for safe) - if (typeof File === 'function' && param instanceof File) { - return true; - } - return false; - }; + request.query(this.normalizeParams(queryParams)); - /** - * Normalizes parameter values: - *
    - *
  • remove nils
  • - *
  • keep files and arrays
  • - *
  • format to string with `paramToString` for other cases
  • - *
- * @param {Object.} params The parameters as object properties. - * @returns {Object.} normalized parameters. - */ - exports.prototype.normalizeParams = function(params) { - var newParams = {}; - for (var key in params) { - if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) { - var value = params[key]; - if (this.isFileParam(value) || Array.isArray(value)) { - newParams[key] = value; + // set header parameters + request.set(this.defaultHeaders).set(this.normalizeParams(headerParams)); + + // set request timeout + request.timeout(this.timeout); + + var contentType = this.jsonPreferredMime(contentTypes); + if (contentType) { + // Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746) + if(contentType != 'multipart/form-data') { + request.type(contentType); + } + } else if (!request.header['Content-Type']) { + request.type('application/json'); + } + + if (contentType === 'application/x-www-form-urlencoded') { + request.send(querystring.stringify(this.normalizeParams(formParams))); + } else if (contentType == 'multipart/form-data') { + var _formParams = this.normalizeParams(formParams); + for (var key in _formParams) { + if (_formParams.hasOwnProperty(key)) { + if (this.isFileParam(_formParams[key])) { + // file field + request.attach(key, _formParams[key]); + } else { + request.field(key, _formParams[key]); + } + } + } + } else if (bodyParam) { + request.send(bodyParam); + } + + var accept = this.jsonPreferredMime(accepts); + if (accept) { + request.accept(accept); + } + + if (returnType === 'Blob') { + request.responseType('blob'); + } else if (returnType === 'String') { + request.responseType('string'); + } + + // Attach previously saved cookies, if enabled + if (this.enableCookies){ + if (typeof window === 'undefined') { + this.agent.attachCookies(request); + } + else { + request.withCredentials(); + } + } + + return new Promise((resolve, reject) => { + request.end((error, response) => { + if (error) { + reject(error); + } else { + try { + var data = this.deserialize(response, returnType); + if (this.enableCookies && typeof window === 'undefined'){ + this.agent.saveCookies(response); + } + + resolve({data, response}); + } catch (err) { + reject(err); + } + } + }); + }); + + + } + + /** + * Parses an ISO-8601 string representation of a date value. + * @param {String} str The date value as a string. + * @returns {Date} The parsed date object. + */ + static parseDate(str) { + return new Date(str.replace(/T/i, ' ')); + } + + /** + * Converts a value to the specified type. + * @param {(String|Object)} data The data to convert, as a string or object. + * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types + * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To + * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: + * all properties on data will be converted to this type. + * @returns An instance of the specified type or null or undefined if data is null or undefined. + */ + static convertToType(data, type) { + if (data === null || data === undefined) + return data + + switch (type) { + case 'Boolean': + return Boolean(data); + case 'Integer': + return parseInt(data, 10); + case 'Number': + return parseFloat(data); + case 'String': + return String(data); + case 'Date': + return ApiClient.parseDate(String(data)); + case 'Blob': + return data; + default: + if (type === Object) { + // generic object, return directly + return data; + } else if (typeof type === 'function') { + // for model type like: User + return type.constructFromObject(data); + } else if (Array.isArray(type)) { + // for array type like: ['String'] + var itemType = type[0]; + + return data.map((item) => { + return ApiClient.convertToType(item, itemType); + }); + } else if (typeof type === 'object') { + // for plain object type like: {'String': 'Integer'} + var keyType, valueType; + for (var k in type) { + if (type.hasOwnProperty(k)) { + keyType = k; + valueType = type[k]; + break; + } + } + + var result = {}; + for (var k in data) { + if (data.hasOwnProperty(k)) { + var key = ApiClient.convertToType(k, keyType); + var value = ApiClient.convertToType(data[k], valueType); + result[key] = value; + } + } + + return result; + } else { + // for unknown type, return the data directly + return data; + } + } + } + + /** + * Constructs a new map or array model from REST data. + * @param data {Object|Array} The REST data. + * @param obj {Object|Array} The target object or array. + */ + static constructFromObject(data, obj, itemType) { + if (Array.isArray(data)) { + for (var i = 0; i < data.length; i++) { + if (data.hasOwnProperty(i)) + obj[i] = ApiClient.convertToType(data[i], itemType); + } } else { - newParams[key] = this.paramToString(value); + for (var k in data) { + if (data.hasOwnProperty(k)) + obj[k] = ApiClient.convertToType(data[k], itemType); + } } - } - } - return newParams; - }; + }; +} - /** - * Enumeration of collection format separator strategies. - * @enum {String} - * @readonly - */ - exports.CollectionFormatEnum = { - /** - * Comma-separated values. Value: csv - * @const - */ - CSV: ',', - /** - * Space-separated values. Value: ssv - * @const - */ - SSV: ' ', - /** - * Tab-separated values. Value: tsv - * @const - */ - TSV: '\t', - /** - * Pipe(|)-separated values. Value: pipes - * @const - */ - PIPES: '|', - /** - * Native array. Value: multi - * @const - */ - MULTI: 'multi' - }; - - /** - * Builds a string representation of an array-type actual parameter, according to the given collection format. - * @param {Array} param An array parameter. - * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy. - * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns - * param as is if collectionFormat is multi. - */ - exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) { - if (param == null) { - return null; - } - switch (collectionFormat) { - case 'csv': - return param.map(this.paramToString).join(','); - case 'ssv': - return param.map(this.paramToString).join(' '); - case 'tsv': - return param.map(this.paramToString).join('\t'); - case 'pipes': - return param.map(this.paramToString).join('|'); - case 'multi': - // return the array directly as SuperAgent will handle it as expected - return param.map(this.paramToString); - default: - throw new Error('Unknown collection format: ' + collectionFormat); - } - }; - - /** - * Applies authentication headers to the request. - * @param {Object} request The request object created by a superagent() call. - * @param {Array.} authNames An array of authentication method names. - */ - exports.prototype.applyAuthToRequest = function(request, authNames) { - var _this = this; - authNames.forEach(function(authName) { - var auth = _this.authentications[authName]; - switch (auth.type) { - case 'basic': - if (auth.username || auth.password) { - request.auth(auth.username || '', auth.password || ''); - } - break; - case 'apiKey': - if (auth.apiKey) { - var data = {}; - if (auth.apiKeyPrefix) { - data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey; - } else { - data[auth.name] = auth.apiKey; - } - if (auth['in'] === 'header') { - request.set(data); - } else { - request.query(data); - } - } - break; - case 'oauth2': - if (auth.accessToken) { - request.set({'Authorization': 'Bearer ' + auth.accessToken}); - } - break; - default: - throw new Error('Unknown authentication type: ' + auth.type); - } - }); - }; - - /** - * Deserializes an HTTP response body into a value of the specified type. - * @param {Object} response A SuperAgent response object. - * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types - * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To - * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: - * all properties on data will be converted to this type. - * @returns A value of the specified type. - */ - exports.prototype.deserialize = function deserialize(response, returnType) { - if (response == null || returnType == null || response.status == 204) { - return null; - } - // Rely on SuperAgent for parsing response body. - // See http://visionmedia.github.io/superagent/#parsing-response-bodies - var data = response.body; - if (data == null || (typeof data === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length)) { - // SuperAgent does not always produce a body; use the unparsed response as a fallback - data = response.text; - } - return exports.convertToType(data, returnType); - }; - - /** - * Invokes the REST service using the supplied settings and parameters. - * @param {String} path The base URL to invoke. - * @param {String} httpMethod The HTTP method to use. - * @param {Object.} pathParams A map of path parameters and their values. - * @param {Object.} queryParams A map of query parameters and their values. - * @param {Object.} headerParams A map of header parameters and their values. - * @param {Object.} formParams A map of form parameters and their values. - * @param {Object} bodyParam The value to pass as the request body. - * @param {Array.} authNames An array of authentication type names. - * @param {Array.} contentTypes An array of request MIME types. - * @param {Array.} accepts An array of acceptable response MIME types. - * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the - * constructor for a complex type. - * @returns {Promise} A {@link https://www.promisejs.org/|Promise} object. - */ - exports.prototype.callApi = function callApi(path, httpMethod, pathParams, - queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, - returnType) { - - var _this = this; - var url = this.buildUrl(path, pathParams); - var request = superagent(httpMethod, url); - - // apply authentications - this.applyAuthToRequest(request, authNames); - - // set query parameters - if (httpMethod.toUpperCase() === 'GET' && this.cache === false) { - queryParams['_'] = new Date().getTime(); - } - request.query(this.normalizeParams(queryParams)); - - // set header parameters - request.set(this.defaultHeaders).set(this.normalizeParams(headerParams)); - - // set request timeout - request.timeout(this.timeout); - - var contentType = this.jsonPreferredMime(contentTypes); - if (contentType) { - // Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746) - if(contentType != 'multipart/form-data') { - request.type(contentType); - } - } else if (!request.header['Content-Type']) { - request.type('application/json'); - } - - if (contentType === 'application/x-www-form-urlencoded') { - request.send(querystring.stringify(this.normalizeParams(formParams))); - } else if (contentType == 'multipart/form-data') { - var _formParams = this.normalizeParams(formParams); - for (var key in _formParams) { - if (_formParams.hasOwnProperty(key)) { - if (this.isFileParam(_formParams[key])) { - // file field - request.attach(key, _formParams[key]); - } else { - request.field(key, _formParams[key]); - } - } - } - } else if (bodyParam) { - request.send(bodyParam); - } - - var accept = this.jsonPreferredMime(accepts); - if (accept) { - request.accept(accept); - } - - if (returnType === 'Blob') { - request.responseType('blob'); - } else if (returnType === 'String') { - request.responseType('string'); - } - - // Attach previously saved cookies, if enabled - if (this.enableCookies){ - if (typeof window === 'undefined') { - this.agent.attachCookies(request); - } - else { - request.withCredentials(); - } - } - - return new Promise(function(resolve, reject) { - request.end(function(error, response) { - if (error) { - reject(error); - } else { - try { - var data = _this.deserialize(response, returnType); - if (_this.enableCookies && typeof window === 'undefined'){ - _this.agent.saveCookies(response); - } - resolve({data, response}); - } catch (err) { - reject(err); - } - } - }); - }); - }; - - /** - * Parses an ISO-8601 string representation of a date value. - * @param {String} str The date value as a string. - * @returns {Date} The parsed date object. - */ - exports.parseDate = function(str) { - return new Date(str.replace(/T/i, ' ')); - }; - - /** - * Converts a value to the specified type. - * @param {(String|Object)} data The data to convert, as a string or object. - * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types - * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To - * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type: - * all properties on data will be converted to this type. - * @returns An instance of the specified type or null or undefined if data is null or undefined. - */ - exports.convertToType = function(data, type) { - if (data === null || data === undefined) - return data - - switch (type) { - case 'Boolean': - return Boolean(data); - case 'Integer': - return parseInt(data, 10); - case 'Number': - return parseFloat(data); - case 'String': - return String(data); - case 'Date': - return this.parseDate(String(data)); - case 'Blob': - return data; - default: - if (type === Object) { - // generic object, return directly - return data; - } else if (typeof type === 'function') { - // for model type like: User - return type.constructFromObject(data); - } else if (Array.isArray(type)) { - // for array type like: ['String'] - var itemType = type[0]; - return data.map(function(item) { - return exports.convertToType(item, itemType); - }); - } else if (typeof type === 'object') { - // for plain object type like: {'String': 'Integer'} - var keyType, valueType; - for (var k in type) { - if (type.hasOwnProperty(k)) { - keyType = k; - valueType = type[k]; - break; - } - } - var result = {}; - for (var k in data) { - if (data.hasOwnProperty(k)) { - var key = exports.convertToType(k, keyType); - var value = exports.convertToType(data[k], valueType); - result[key] = value; - } - } - return result; - } else { - // for unknown type, return the data directly - return data; - } - } - }; - - /** - * Constructs a new map or array model from REST data. - * @param data {Object|Array} The REST data. - * @param obj {Object|Array} The target object or array. - */ - exports.constructFromObject = function(data, obj, itemType) { - if (Array.isArray(data)) { - for (var i = 0; i < data.length; i++) { - if (data.hasOwnProperty(i)) - obj[i] = exports.convertToType(data[i], itemType); - } - } else { - for (var k in data) { - if (data.hasOwnProperty(k)) - obj[k] = exports.convertToType(data[k], itemType); - } - } - }; - - /** - * The default API client implementation. - * @type {module:ApiClient} - */ - exports.instance = new exports(); - - return exports; -})); +/** +* The default API client implementation. +* @type {module:ApiClient} +*/ +ApiClient.instance = new ApiClient(); diff --git a/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js b/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js index 5d02c0d220f..2cdc729a803 100644 --- a/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js +++ b/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js @@ -7,45 +7,35 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Client', 'model/OuterBoolean', 'model/OuterComposite', 'model/OuterNumber', 'model/OuterString'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/Client'), require('../model/OuterBoolean'), require('../model/OuterComposite'), require('../model/OuterNumber'), require('../model/OuterString')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import Client from '../model/Client'; +import OuterBoolean from '../model/OuterBoolean'; +import OuterComposite from '../model/OuterComposite'; +import OuterNumber from '../model/OuterNumber'; +import OuterString from '../model/OuterString'; + +/** +* Fake service. +* @module api/FakeApi +* @version 1.0.0 +*/ +export default class FakeApi { + + /** + * Constructs a new FakeApi. + * @alias module:api/FakeApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.FakeApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Client, root.SwaggerPetstore.OuterBoolean, root.SwaggerPetstore.OuterComposite, root.SwaggerPetstore.OuterNumber, root.SwaggerPetstore.OuterString); - } -}(this, function(ApiClient, Client, OuterBoolean, OuterComposite, OuterNumber, OuterString) { - 'use strict'; - - /** - * Fake service. - * @module api/FakeApi - * @version 1.0.0 - */ - - /** - * Constructs a new FakeApi. - * @alias module:api/FakeApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; @@ -55,24 +45,24 @@ * @param {module:model/OuterBoolean} opts.body Input boolean as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterBoolean} and HTTP response */ - this.fakeOuterBooleanSerializeWithHttpInfo = function(opts) { + fakeOuterBooleanSerializeWithHttpInfo(opts) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterBoolean; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterBoolean; return this.apiClient.callApi( '/fake/outer/boolean', 'POST', @@ -87,7 +77,7 @@ * @param {module:model/OuterBoolean} opts.body Input boolean as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterBoolean} */ - this.fakeOuterBooleanSerialize = function(opts) { + fakeOuterBooleanSerialize(opts) { return this.fakeOuterBooleanSerializeWithHttpInfo(opts) .then(function(response_and_data) { return response_and_data.data; @@ -101,24 +91,24 @@ * @param {module:model/OuterComposite} opts.body Input composite as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterComposite} and HTTP response */ - this.fakeOuterCompositeSerializeWithHttpInfo = function(opts) { + fakeOuterCompositeSerializeWithHttpInfo(opts) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterComposite; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterComposite; return this.apiClient.callApi( '/fake/outer/composite', 'POST', @@ -133,7 +123,7 @@ * @param {module:model/OuterComposite} opts.body Input composite as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterComposite} */ - this.fakeOuterCompositeSerialize = function(opts) { + fakeOuterCompositeSerialize(opts) { return this.fakeOuterCompositeSerializeWithHttpInfo(opts) .then(function(response_and_data) { return response_and_data.data; @@ -147,24 +137,24 @@ * @param {module:model/OuterNumber} opts.body Input number as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterNumber} and HTTP response */ - this.fakeOuterNumberSerializeWithHttpInfo = function(opts) { + fakeOuterNumberSerializeWithHttpInfo(opts) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterNumber; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterNumber; return this.apiClient.callApi( '/fake/outer/number', 'POST', @@ -179,7 +169,7 @@ * @param {module:model/OuterNumber} opts.body Input number as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterNumber} */ - this.fakeOuterNumberSerialize = function(opts) { + fakeOuterNumberSerialize(opts) { return this.fakeOuterNumberSerializeWithHttpInfo(opts) .then(function(response_and_data) { return response_and_data.data; @@ -193,24 +183,24 @@ * @param {module:model/OuterString} opts.body Input string as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterString} and HTTP response */ - this.fakeOuterStringSerializeWithHttpInfo = function(opts) { + fakeOuterStringSerializeWithHttpInfo(opts) { opts = opts || {}; - var postBody = opts['body']; + let postBody = opts['body']; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = []; - var returnType = OuterString; + let authNames = []; + let contentTypes = []; + let accepts = []; + let returnType = OuterString; return this.apiClient.callApi( '/fake/outer/string', 'POST', @@ -225,7 +215,7 @@ * @param {module:model/OuterString} opts.body Input string as post body * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterString} */ - this.fakeOuterStringSerialize = function(opts) { + fakeOuterStringSerialize(opts) { return this.fakeOuterStringSerializeWithHttpInfo(opts) .then(function(response_and_data) { return response_and_data.data; @@ -239,8 +229,8 @@ * @param {module:model/Client} body client model * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response */ - this.testClientModelWithHttpInfo = function(body) { - var postBody = body; + testClientModelWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -248,19 +238,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = ['application/json']; - var accepts = ['application/json']; - var returnType = Client; + let authNames = []; + let contentTypes = ['application/json']; + let accepts = ['application/json']; + let returnType = Client; return this.apiClient.callApi( '/fake', 'PATCH', @@ -275,7 +265,7 @@ * @param {module:model/Client} body client model * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client} */ - this.testClientModel = function(body) { + testClientModel(body) { return this.testClientModelWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; @@ -303,9 +293,9 @@ * @param {String} opts.callback None * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.testEndpointParametersWithHttpInfo = function(_number, _double, patternWithoutDelimiter, _byte, opts) { + testEndpointParametersWithHttpInfo(_number, _double, patternWithoutDelimiter, _byte, opts) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter '_number' is set if (_number === undefined || _number === null) { @@ -328,13 +318,13 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { 'integer': opts['integer'], 'int32': opts['int32'], 'int64': opts['int64'], @@ -351,10 +341,10 @@ 'callback': opts['callback'] }; - var authNames = ['http_basic_test']; - var contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; - var accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; - var returnType = null; + let authNames = ['http_basic_test']; + let contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; + let accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; + let returnType = null; return this.apiClient.callApi( '/fake', 'POST', @@ -383,7 +373,7 @@ * @param {String} opts.callback None * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.testEndpointParameters = function(_number, _double, patternWithoutDelimiter, _byte, opts) { + testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts) { return this.testEndpointParametersWithHttpInfo(_number, _double, patternWithoutDelimiter, _byte, opts) .then(function(response_and_data) { return response_and_data.data; @@ -405,32 +395,32 @@ * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double) * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.testEnumParametersWithHttpInfo = function(opts) { + testEnumParametersWithHttpInfo(opts) { opts = opts || {}; - var postBody = null; + let postBody = null; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'enum_query_string_array': this.apiClient.buildCollectionParam(opts['enumQueryStringArray'], 'csv'), 'enum_query_string': opts['enumQueryString'], 'enum_query_integer': opts['enumQueryInteger'] }; - var headerParams = { + let headerParams = { 'enum_header_string_array': opts['enumHeaderStringArray'], 'enum_header_string': opts['enumHeaderString'] }; - var formParams = { + let formParams = { 'enum_form_string_array': this.apiClient.buildCollectionParam(opts['enumFormStringArray'], 'csv'), 'enum_form_string': opts['enumFormString'], 'enum_query_double': opts['enumQueryDouble'] }; - var authNames = []; - var contentTypes = ['*/*']; - var accepts = ['*/*']; - var returnType = null; + let authNames = []; + let contentTypes = ['*/*']; + let accepts = ['*/*']; + let returnType = null; return this.apiClient.callApi( '/fake', 'GET', @@ -453,13 +443,12 @@ * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double) * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.testEnumParameters = function(opts) { + testEnumParameters(opts) { return this.testEnumParametersWithHttpInfo(opts) .then(function(response_and_data) { return response_and_data.data; }); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js b/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js index fbf0ae9516a..53e385ef2cd 100644 --- a/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js +++ b/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js @@ -7,45 +7,32 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/ApiResponse', 'model/Pet'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/ApiResponse'), require('../model/Pet')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import ApiResponse from '../model/ApiResponse'; +import Pet from '../model/Pet'; + +/** +* Pet service. +* @module api/PetApi +* @version 1.0.0 +*/ +export default class PetApi { + + /** + * Constructs a new PetApi. + * @alias module:api/PetApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.PetApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.ApiResponse, root.SwaggerPetstore.Pet); - } -}(this, function(ApiClient, ApiResponse, Pet) { - 'use strict'; - - /** - * Pet service. - * @module api/PetApi - * @version 1.0.0 - */ - - /** - * Constructs a new PetApi. - * @alias module:api/PetApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; @@ -55,8 +42,8 @@ * @param {module:model/Pet} body Pet object that needs to be added to the store * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.addPetWithHttpInfo = function(body) { - var postBody = body; + addPetWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -64,19 +51,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = ['application/json', 'application/xml']; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = ['application/json', 'application/xml']; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet', 'POST', @@ -91,7 +78,7 @@ * @param {module:model/Pet} body Pet object that needs to be added to the store * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.addPet = function(body) { + addPet(body) { return this.addPetWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; @@ -107,9 +94,9 @@ * @param {String} opts.apiKey * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.deletePetWithHttpInfo = function(petId, opts) { + deletePetWithHttpInfo(petId, opts) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -117,21 +104,21 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { 'api_key': opts['apiKey'] }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet/{petId}', 'DELETE', @@ -148,7 +135,7 @@ * @param {String} opts.apiKey * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.deletePet = function(petId, opts) { + deletePet(petId, opts) { return this.deletePetWithHttpInfo(petId, opts) .then(function(response_and_data) { return response_and_data.data; @@ -162,8 +149,8 @@ * @param {Array.} status Status values that need to be considered for filter * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Array.} and HTTP response */ - this.findPetsByStatusWithHttpInfo = function(status) { - var postBody = null; + findPetsByStatusWithHttpInfo(status) { + let postBody = null; // verify the required parameter 'status' is set if (status === undefined || status === null) { @@ -171,20 +158,20 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'status': this.apiClient.buildCollectionParam(status, 'csv') }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = [Pet]; + let authNames = ['petstore_auth']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = [Pet]; return this.apiClient.callApi( '/pet/findByStatus', 'GET', @@ -199,7 +186,7 @@ * @param {Array.} status Status values that need to be considered for filter * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Array.} */ - this.findPetsByStatus = function(status) { + findPetsByStatus(status) { return this.findPetsByStatusWithHttpInfo(status) .then(function(response_and_data) { return response_and_data.data; @@ -213,8 +200,8 @@ * @param {Array.} tags Tags to filter by * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Array.} and HTTP response */ - this.findPetsByTagsWithHttpInfo = function(tags) { - var postBody = null; + findPetsByTagsWithHttpInfo(tags) { + let postBody = null; // verify the required parameter 'tags' is set if (tags === undefined || tags === null) { @@ -222,20 +209,20 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'tags': this.apiClient.buildCollectionParam(tags, 'csv') }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = [Pet]; + let authNames = ['petstore_auth']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = [Pet]; return this.apiClient.callApi( '/pet/findByTags', 'GET', @@ -250,7 +237,7 @@ * @param {Array.} tags Tags to filter by * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Array.} */ - this.findPetsByTags = function(tags) { + findPetsByTags(tags) { return this.findPetsByTagsWithHttpInfo(tags) .then(function(response_and_data) { return response_and_data.data; @@ -264,8 +251,8 @@ * @param {Number} petId ID of pet to return * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Pet} and HTTP response */ - this.getPetByIdWithHttpInfo = function(petId) { - var postBody = null; + getPetByIdWithHttpInfo(petId) { + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -273,20 +260,20 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['api_key']; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = Pet; + let authNames = ['api_key']; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = Pet; return this.apiClient.callApi( '/pet/{petId}', 'GET', @@ -301,7 +288,7 @@ * @param {Number} petId ID of pet to return * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Pet} */ - this.getPetById = function(petId) { + getPetById(petId) { return this.getPetByIdWithHttpInfo(petId) .then(function(response_and_data) { return response_and_data.data; @@ -315,8 +302,8 @@ * @param {module:model/Pet} body Pet object that needs to be added to the store * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.updatePetWithHttpInfo = function(body) { - var postBody = body; + updatePetWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -324,19 +311,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['petstore_auth']; - var contentTypes = ['application/json', 'application/xml']; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = ['application/json', 'application/xml']; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet', 'PUT', @@ -351,7 +338,7 @@ * @param {module:model/Pet} body Pet object that needs to be added to the store * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.updatePet = function(body) { + updatePet(body) { return this.updatePetWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; @@ -368,9 +355,9 @@ * @param {String} opts.status Updated status of the pet * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.updatePetWithFormWithHttpInfo = function(petId, opts) { + updatePetWithFormWithHttpInfo(petId, opts) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -378,22 +365,22 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { 'name': opts['name'], 'status': opts['status'] }; - var authNames = ['petstore_auth']; - var contentTypes = ['application/x-www-form-urlencoded']; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = ['petstore_auth']; + let contentTypes = ['application/x-www-form-urlencoded']; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/pet/{petId}', 'POST', @@ -411,7 +398,7 @@ * @param {String} opts.status Updated status of the pet * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.updatePetWithForm = function(petId, opts) { + updatePetWithForm(petId, opts) { return this.updatePetWithFormWithHttpInfo(petId, opts) .then(function(response_and_data) { return response_and_data.data; @@ -428,9 +415,9 @@ * @param {File} opts.file file to upload * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/ApiResponse} and HTTP response */ - this.uploadFileWithHttpInfo = function(petId, opts) { + uploadFileWithHttpInfo(petId, opts) { opts = opts || {}; - var postBody = null; + let postBody = null; // verify the required parameter 'petId' is set if (petId === undefined || petId === null) { @@ -438,22 +425,22 @@ } - var pathParams = { + let pathParams = { 'petId': petId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { 'additionalMetadata': opts['additionalMetadata'], 'file': opts['file'] }; - var authNames = ['petstore_auth']; - var contentTypes = ['multipart/form-data']; - var accepts = ['application/json']; - var returnType = ApiResponse; + let authNames = ['petstore_auth']; + let contentTypes = ['multipart/form-data']; + let accepts = ['application/json']; + let returnType = ApiResponse; return this.apiClient.callApi( '/pet/{petId}/uploadImage', 'POST', @@ -471,13 +458,12 @@ * @param {File} opts.file file to upload * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/ApiResponse} */ - this.uploadFile = function(petId, opts) { + uploadFile(petId, opts) { return this.uploadFileWithHttpInfo(petId, opts) .then(function(response_and_data) { return response_and_data.data; }); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js b/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js index fd07229b31f..0b55929a8a4 100644 --- a/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js +++ b/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js @@ -7,45 +7,31 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Order'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/Order')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import Order from '../model/Order'; + +/** +* Store service. +* @module api/StoreApi +* @version 1.0.0 +*/ +export default class StoreApi { + + /** + * Constructs a new StoreApi. + * @alias module:api/StoreApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.StoreApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Order); - } -}(this, function(ApiClient, Order) { - 'use strict'; - - /** - * Store service. - * @module api/StoreApi - * @version 1.0.0 - */ - - /** - * Constructs a new StoreApi. - * @alias module:api/StoreApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; @@ -55,8 +41,8 @@ * @param {String} orderId ID of the order that needs to be deleted * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.deleteOrderWithHttpInfo = function(orderId) { - var postBody = null; + deleteOrderWithHttpInfo(orderId) { + let postBody = null; // verify the required parameter 'orderId' is set if (orderId === undefined || orderId === null) { @@ -64,20 +50,20 @@ } - var pathParams = { + let pathParams = { 'order_id': orderId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/store/order/{order_id}', 'DELETE', @@ -92,7 +78,7 @@ * @param {String} orderId ID of the order that needs to be deleted * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.deleteOrder = function(orderId) { + deleteOrder(orderId) { return this.deleteOrderWithHttpInfo(orderId) .then(function(response_and_data) { return response_and_data.data; @@ -105,23 +91,23 @@ * Returns a map of status codes to quantities * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Object.} and HTTP response */ - this.getInventoryWithHttpInfo = function() { - var postBody = null; + getInventoryWithHttpInfo() { + let postBody = null; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = ['api_key']; - var contentTypes = []; - var accepts = ['application/json']; - var returnType = {'String': 'Number'}; + let authNames = ['api_key']; + let contentTypes = []; + let accepts = ['application/json']; + let returnType = {'String': 'Number'}; return this.apiClient.callApi( '/store/inventory', 'GET', @@ -135,7 +121,7 @@ * Returns a map of status codes to quantities * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Object.} */ - this.getInventory = function() { + getInventory() { return this.getInventoryWithHttpInfo() .then(function(response_and_data) { return response_and_data.data; @@ -149,8 +135,8 @@ * @param {Number} orderId ID of pet that needs to be fetched * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Order} and HTTP response */ - this.getOrderByIdWithHttpInfo = function(orderId) { - var postBody = null; + getOrderByIdWithHttpInfo(orderId) { + let postBody = null; // verify the required parameter 'orderId' is set if (orderId === undefined || orderId === null) { @@ -158,20 +144,20 @@ } - var pathParams = { + let pathParams = { 'order_id': orderId }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = Order; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = Order; return this.apiClient.callApi( '/store/order/{order_id}', 'GET', @@ -186,7 +172,7 @@ * @param {Number} orderId ID of pet that needs to be fetched * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Order} */ - this.getOrderById = function(orderId) { + getOrderById(orderId) { return this.getOrderByIdWithHttpInfo(orderId) .then(function(response_and_data) { return response_and_data.data; @@ -200,8 +186,8 @@ * @param {module:model/Order} body order placed for purchasing the pet * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Order} and HTTP response */ - this.placeOrderWithHttpInfo = function(body) { - var postBody = body; + placeOrderWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -209,19 +195,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = Order; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = Order; return this.apiClient.callApi( '/store/order', 'POST', @@ -236,13 +222,12 @@ * @param {module:model/Order} body order placed for purchasing the pet * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Order} */ - this.placeOrder = function(body) { + placeOrder(body) { return this.placeOrderWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; }); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js b/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js index beac00797f9..1c1fe593e26 100644 --- a/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js +++ b/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js @@ -7,45 +7,31 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/User'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('../model/User')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from "../ApiClient"; +import User from '../model/User'; + +/** +* User service. +* @module api/UserApi +* @version 1.0.0 +*/ +export default class UserApi { + + /** + * Constructs a new UserApi. + * @alias module:api/UserApi + * @class + * @param {module:ApiClient} apiClient Optional API client implementation to use, + * default to {@link module:ApiClient#instance} if unspecified. + */ + constructor(apiClient) { + this.apiClient = apiClient || ApiClient.instance; } - root.SwaggerPetstore.UserApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.User); - } -}(this, function(ApiClient, User) { - 'use strict'; - - /** - * User service. - * @module api/UserApi - * @version 1.0.0 - */ - - /** - * Constructs a new UserApi. - * @alias module:api/UserApi - * @class - * @param {module:ApiClient} apiClient Optional API client implementation to use, - * default to {@link module:ApiClient#instance} if unspecified. - */ - var exports = function(apiClient) { - this.apiClient = apiClient || ApiClient.instance; @@ -55,8 +41,8 @@ * @param {module:model/User} body Created user object * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.createUserWithHttpInfo = function(body) { - var postBody = body; + createUserWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -64,19 +50,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user', 'POST', @@ -91,7 +77,7 @@ * @param {module:model/User} body Created user object * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.createUser = function(body) { + createUser(body) { return this.createUserWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; @@ -105,8 +91,8 @@ * @param {Array.} body List of user object * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.createUsersWithArrayInputWithHttpInfo = function(body) { - var postBody = body; + createUsersWithArrayInputWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -114,19 +100,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/createWithArray', 'POST', @@ -141,7 +127,7 @@ * @param {Array.} body List of user object * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.createUsersWithArrayInput = function(body) { + createUsersWithArrayInput(body) { return this.createUsersWithArrayInputWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; @@ -155,8 +141,8 @@ * @param {Array.} body List of user object * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.createUsersWithListInputWithHttpInfo = function(body) { - var postBody = body; + createUsersWithListInputWithHttpInfo(body) { + let postBody = body; // verify the required parameter 'body' is set if (body === undefined || body === null) { @@ -164,19 +150,19 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/createWithList', 'POST', @@ -191,7 +177,7 @@ * @param {Array.} body List of user object * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.createUsersWithListInput = function(body) { + createUsersWithListInput(body) { return this.createUsersWithListInputWithHttpInfo(body) .then(function(response_and_data) { return response_and_data.data; @@ -205,8 +191,8 @@ * @param {String} username The name that needs to be deleted * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.deleteUserWithHttpInfo = function(username) { - var postBody = null; + deleteUserWithHttpInfo(username) { + let postBody = null; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -214,20 +200,20 @@ } - var pathParams = { + let pathParams = { 'username': username }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/{username}', 'DELETE', @@ -242,7 +228,7 @@ * @param {String} username The name that needs to be deleted * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.deleteUser = function(username) { + deleteUser(username) { return this.deleteUserWithHttpInfo(username) .then(function(response_and_data) { return response_and_data.data; @@ -256,8 +242,8 @@ * @param {String} username The name that needs to be fetched. Use user1 for testing. * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/User} and HTTP response */ - this.getUserByNameWithHttpInfo = function(username) { - var postBody = null; + getUserByNameWithHttpInfo(username) { + let postBody = null; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -265,20 +251,20 @@ } - var pathParams = { + let pathParams = { 'username': username }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = User; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = User; return this.apiClient.callApi( '/user/{username}', 'GET', @@ -293,7 +279,7 @@ * @param {String} username The name that needs to be fetched. Use user1 for testing. * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/User} */ - this.getUserByName = function(username) { + getUserByName(username) { return this.getUserByNameWithHttpInfo(username) .then(function(response_and_data) { return response_and_data.data; @@ -308,8 +294,8 @@ * @param {String} password The password for login in clear text * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link 'String'} and HTTP response */ - this.loginUserWithHttpInfo = function(username, password) { - var postBody = null; + loginUserWithHttpInfo(username, password) { + let postBody = null; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -322,21 +308,21 @@ } - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { 'username': username, 'password': password }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = 'String'; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = 'String'; return this.apiClient.callApi( '/user/login', 'GET', @@ -352,7 +338,7 @@ * @param {String} password The password for login in clear text * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link 'String'} */ - this.loginUser = function(username, password) { + loginUser(username, password) { return this.loginUserWithHttpInfo(username, password) .then(function(response_and_data) { return response_and_data.data; @@ -365,23 +351,23 @@ * * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.logoutUserWithHttpInfo = function() { - var postBody = null; + logoutUserWithHttpInfo() { + let postBody = null; - var pathParams = { + let pathParams = { }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/logout', 'GET', @@ -395,7 +381,7 @@ * * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.logoutUser = function() { + logoutUser() { return this.logoutUserWithHttpInfo() .then(function(response_and_data) { return response_and_data.data; @@ -410,8 +396,8 @@ * @param {module:model/User} body Updated user object * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - this.updateUserWithHttpInfo = function(username, body) { - var postBody = body; + updateUserWithHttpInfo(username, body) { + let postBody = body; // verify the required parameter 'username' is set if (username === undefined || username === null) { @@ -424,20 +410,20 @@ } - var pathParams = { + let pathParams = { 'username': username }; - var queryParams = { + let queryParams = { }; - var headerParams = { + let headerParams = { }; - var formParams = { + let formParams = { }; - var authNames = []; - var contentTypes = []; - var accepts = ['application/xml', 'application/json']; - var returnType = null; + let authNames = []; + let contentTypes = []; + let accepts = ['application/xml', 'application/json']; + let returnType = null; return this.apiClient.callApi( '/user/{username}', 'PUT', @@ -453,13 +439,12 @@ * @param {module:model/User} body Updated user object * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - this.updateUser = function(username, body) { + updateUser(username, body) { return this.updateUserWithHttpInfo(username, body) .then(function(response_and_data) { return response_and_data.data; }); } - }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/index.js b/samples/client/petstore/javascript-promise-es6/src/index.js index 6acae4aaaf4..3a016977a34 100644 --- a/samples/client/petstore/javascript-promise-es6/src/index.js +++ b/samples/client/petstore/javascript-promise-es6/src/index.js @@ -7,262 +7,329 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/AdditionalPropertiesClass', 'model/Animal', 'model/AnimalFarm', 'model/ApiResponse', 'model/ArrayOfArrayOfNumberOnly', 'model/ArrayOfNumberOnly', 'model/ArrayTest', 'model/Capitalization', 'model/Category', 'model/ClassModel', 'model/Client', 'model/EnumArrays', 'model/EnumClass', 'model/EnumTest', 'model/FormatTest', 'model/HasOnlyReadOnly', 'model/List', 'model/MapTest', 'model/MixedPropertiesAndAdditionalPropertiesClass', 'model/Model200Response', 'model/ModelReturn', 'model/Name', 'model/NumberOnly', 'model/Order', 'model/OuterBoolean', 'model/OuterComposite', 'model/OuterEnum', 'model/OuterNumber', 'model/OuterString', 'model/Pet', 'model/ReadOnlyFirst', 'model/SpecialModelName', 'model/Tag', 'model/User', 'model/Cat', 'model/Dog', 'api/FakeApi', 'api/PetApi', 'api/StoreApi', 'api/UserApi'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('./ApiClient'), require('./model/AdditionalPropertiesClass'), require('./model/Animal'), require('./model/AnimalFarm'), require('./model/ApiResponse'), require('./model/ArrayOfArrayOfNumberOnly'), require('./model/ArrayOfNumberOnly'), require('./model/ArrayTest'), require('./model/Capitalization'), require('./model/Category'), require('./model/ClassModel'), require('./model/Client'), require('./model/EnumArrays'), require('./model/EnumClass'), require('./model/EnumTest'), require('./model/FormatTest'), require('./model/HasOnlyReadOnly'), require('./model/List'), require('./model/MapTest'), require('./model/MixedPropertiesAndAdditionalPropertiesClass'), require('./model/Model200Response'), require('./model/ModelReturn'), require('./model/Name'), require('./model/NumberOnly'), require('./model/Order'), require('./model/OuterBoolean'), require('./model/OuterComposite'), require('./model/OuterEnum'), require('./model/OuterNumber'), require('./model/OuterString'), require('./model/Pet'), require('./model/ReadOnlyFirst'), require('./model/SpecialModelName'), require('./model/Tag'), require('./model/User'), require('./model/Cat'), require('./model/Dog'), require('./api/FakeApi'), require('./api/PetApi'), require('./api/StoreApi'), require('./api/UserApi')); - } -}(function(ApiClient, AdditionalPropertiesClass, Animal, AnimalFarm, ApiResponse, ArrayOfArrayOfNumberOnly, ArrayOfNumberOnly, ArrayTest, Capitalization, Category, ClassModel, Client, EnumArrays, EnumClass, EnumTest, FormatTest, HasOnlyReadOnly, List, MapTest, MixedPropertiesAndAdditionalPropertiesClass, Model200Response, ModelReturn, Name, NumberOnly, Order, OuterBoolean, OuterComposite, OuterEnum, OuterNumber, OuterString, Pet, ReadOnlyFirst, SpecialModelName, Tag, User, Cat, Dog, FakeApi, PetApi, StoreApi, UserApi) { - 'use strict'; - /** - * This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__.
- * The index module provides access to constructors for all the classes which comprise the public API. - *

- * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: - *

-   * var SwaggerPetstore = require('index'); // See note below*.
-   * var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-   * var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
-   * yyyModel.someProperty = 'someValue';
-   * ...
-   * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
-   * ...
-   * 
- * *NOTE: For a top-level AMD script, use require(['index'], function(){...}) - * and put the application logic within the callback function. - *

- *

- * A non-AMD browser application (discouraged) might do something like this: - *

-   * var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-   * var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
-   * yyyModel.someProperty = 'someValue';
-   * ...
-   * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
-   * ...
-   * 
- *

- * @module index - * @version 1.0.0 - */ - var exports = { +import ApiClient from './ApiClient'; +import AdditionalPropertiesClass from './model/AdditionalPropertiesClass'; +import Animal from './model/Animal'; +import AnimalFarm from './model/AnimalFarm'; +import ApiResponse from './model/ApiResponse'; +import ArrayOfArrayOfNumberOnly from './model/ArrayOfArrayOfNumberOnly'; +import ArrayOfNumberOnly from './model/ArrayOfNumberOnly'; +import ArrayTest from './model/ArrayTest'; +import Capitalization from './model/Capitalization'; +import Category from './model/Category'; +import ClassModel from './model/ClassModel'; +import Client from './model/Client'; +import EnumArrays from './model/EnumArrays'; +import EnumClass from './model/EnumClass'; +import EnumTest from './model/EnumTest'; +import FormatTest from './model/FormatTest'; +import HasOnlyReadOnly from './model/HasOnlyReadOnly'; +import List from './model/List'; +import MapTest from './model/MapTest'; +import MixedPropertiesAndAdditionalPropertiesClass from './model/MixedPropertiesAndAdditionalPropertiesClass'; +import Model200Response from './model/Model200Response'; +import ModelReturn from './model/ModelReturn'; +import Name from './model/Name'; +import NumberOnly from './model/NumberOnly'; +import Order from './model/Order'; +import OuterBoolean from './model/OuterBoolean'; +import OuterComposite from './model/OuterComposite'; +import OuterEnum from './model/OuterEnum'; +import OuterNumber from './model/OuterNumber'; +import OuterString from './model/OuterString'; +import Pet from './model/Pet'; +import ReadOnlyFirst from './model/ReadOnlyFirst'; +import SpecialModelName from './model/SpecialModelName'; +import Tag from './model/Tag'; +import User from './model/User'; +import Cat from './model/Cat'; +import Dog from './model/Dog'; +import FakeApi from './api/FakeApi'; +import PetApi from './api/PetApi'; +import StoreApi from './api/StoreApi'; +import UserApi from './api/UserApi'; + + +/** +* This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__.
+* The index module provides access to constructors for all the classes which comprise the public API. +*

+* An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: +*

+* var SwaggerPetstore = require('index'); // See note below*.
+* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* yyyModel.someProperty = 'someValue';
+* ...
+* var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
+* ...
+* 
+* *NOTE: For a top-level AMD script, use require(['index'], function(){...}) +* and put the application logic within the callback function. +*

+*

+* A non-AMD browser application (discouraged) might do something like this: +*

+* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* yyyModel.someProperty = 'someValue';
+* ...
+* var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
+* ...
+* 
+*

+* @module index +* @version 1.0.0 +*/ +export { /** * The ApiClient constructor. * @property {module:ApiClient} */ - ApiClient: ApiClient, + ApiClient, + /** * The AdditionalPropertiesClass model constructor. * @property {module:model/AdditionalPropertiesClass} */ - AdditionalPropertiesClass: AdditionalPropertiesClass, + AdditionalPropertiesClass, + /** * The Animal model constructor. * @property {module:model/Animal} */ - Animal: Animal, + Animal, + /** * The AnimalFarm model constructor. * @property {module:model/AnimalFarm} */ - AnimalFarm: AnimalFarm, + AnimalFarm, + /** * The ApiResponse model constructor. * @property {module:model/ApiResponse} */ - ApiResponse: ApiResponse, + ApiResponse, + /** * The ArrayOfArrayOfNumberOnly model constructor. * @property {module:model/ArrayOfArrayOfNumberOnly} */ - ArrayOfArrayOfNumberOnly: ArrayOfArrayOfNumberOnly, + ArrayOfArrayOfNumberOnly, + /** * The ArrayOfNumberOnly model constructor. * @property {module:model/ArrayOfNumberOnly} */ - ArrayOfNumberOnly: ArrayOfNumberOnly, + ArrayOfNumberOnly, + /** * The ArrayTest model constructor. * @property {module:model/ArrayTest} */ - ArrayTest: ArrayTest, + ArrayTest, + /** * The Capitalization model constructor. * @property {module:model/Capitalization} */ - Capitalization: Capitalization, + Capitalization, + /** * The Category model constructor. * @property {module:model/Category} */ - Category: Category, + Category, + /** * The ClassModel model constructor. * @property {module:model/ClassModel} */ - ClassModel: ClassModel, + ClassModel, + /** * The Client model constructor. * @property {module:model/Client} */ - Client: Client, + Client, + /** * The EnumArrays model constructor. * @property {module:model/EnumArrays} */ - EnumArrays: EnumArrays, + EnumArrays, + /** * The EnumClass model constructor. * @property {module:model/EnumClass} */ - EnumClass: EnumClass, + EnumClass, + /** * The EnumTest model constructor. * @property {module:model/EnumTest} */ - EnumTest: EnumTest, + EnumTest, + /** * The FormatTest model constructor. * @property {module:model/FormatTest} */ - FormatTest: FormatTest, + FormatTest, + /** * The HasOnlyReadOnly model constructor. * @property {module:model/HasOnlyReadOnly} */ - HasOnlyReadOnly: HasOnlyReadOnly, + HasOnlyReadOnly, + /** * The List model constructor. * @property {module:model/List} */ - List: List, + List, + /** * The MapTest model constructor. * @property {module:model/MapTest} */ - MapTest: MapTest, + MapTest, + /** * The MixedPropertiesAndAdditionalPropertiesClass model constructor. * @property {module:model/MixedPropertiesAndAdditionalPropertiesClass} */ - MixedPropertiesAndAdditionalPropertiesClass: MixedPropertiesAndAdditionalPropertiesClass, + MixedPropertiesAndAdditionalPropertiesClass, + /** * The Model200Response model constructor. * @property {module:model/Model200Response} */ - Model200Response: Model200Response, + Model200Response, + /** * The ModelReturn model constructor. * @property {module:model/ModelReturn} */ - ModelReturn: ModelReturn, + ModelReturn, + /** * The Name model constructor. * @property {module:model/Name} */ - Name: Name, + Name, + /** * The NumberOnly model constructor. * @property {module:model/NumberOnly} */ - NumberOnly: NumberOnly, + NumberOnly, + /** * The Order model constructor. * @property {module:model/Order} */ - Order: Order, + Order, + /** * The OuterBoolean model constructor. * @property {module:model/OuterBoolean} */ - OuterBoolean: OuterBoolean, + OuterBoolean, + /** * The OuterComposite model constructor. * @property {module:model/OuterComposite} */ - OuterComposite: OuterComposite, + OuterComposite, + /** * The OuterEnum model constructor. * @property {module:model/OuterEnum} */ - OuterEnum: OuterEnum, + OuterEnum, + /** * The OuterNumber model constructor. * @property {module:model/OuterNumber} */ - OuterNumber: OuterNumber, + OuterNumber, + /** * The OuterString model constructor. * @property {module:model/OuterString} */ - OuterString: OuterString, + OuterString, + /** * The Pet model constructor. * @property {module:model/Pet} */ - Pet: Pet, + Pet, + /** * The ReadOnlyFirst model constructor. * @property {module:model/ReadOnlyFirst} */ - ReadOnlyFirst: ReadOnlyFirst, + ReadOnlyFirst, + /** * The SpecialModelName model constructor. * @property {module:model/SpecialModelName} */ - SpecialModelName: SpecialModelName, + SpecialModelName, + /** * The Tag model constructor. * @property {module:model/Tag} */ - Tag: Tag, + Tag, + /** * The User model constructor. * @property {module:model/User} */ - User: User, + User, + /** * The Cat model constructor. * @property {module:model/Cat} */ - Cat: Cat, + Cat, + /** * The Dog model constructor. * @property {module:model/Dog} */ - Dog: Dog, - /** - * The FakeApi service constructor. - * @property {module:api/FakeApi} - */ - FakeApi: FakeApi, - /** - * The PetApi service constructor. - * @property {module:api/PetApi} - */ - PetApi: PetApi, - /** - * The StoreApi service constructor. - * @property {module:api/StoreApi} - */ - StoreApi: StoreApi, - /** - * The UserApi service constructor. - * @property {module:api/UserApi} - */ - UserApi: UserApi - }; + Dog, - return exports; -})); + /** + * The FakeApi service constructor. + * @property {module:api/FakeApi} + */ + FakeApi, + + /** + * The PetApi service constructor. + * @property {module:api/PetApi} + */ + PetApi, + + /** + * The StoreApi service constructor. + * @property {module:api/StoreApi} + */ + StoreApi, + + /** + * The UserApi service constructor. + * @property {module:api/UserApi} + */ + UserApi +}; diff --git a/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js b/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js index 2744647b18a..088cbb29b35 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The AdditionalPropertiesClass model module. +* @module model/AdditionalPropertiesClass +* @version 1.0.0 +*/ +export default class AdditionalPropertiesClass { + /** + * Constructs a new AdditionalPropertiesClass. + * @alias module:model/AdditionalPropertiesClass + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.AdditionalPropertiesClass = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a AdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/AdditionalPropertiesClass} obj Optional instance to populate. + * @return {module:model/AdditionalPropertiesClass} The populated AdditionalPropertiesClass instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new AdditionalPropertiesClass(); + + + - - /** - * The AdditionalPropertiesClass model module. - * @module model/AdditionalPropertiesClass - * @version 1.0.0 - */ - - /** - * Constructs a new AdditionalPropertiesClass. - * @alias module:model/AdditionalPropertiesClass - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a AdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/AdditionalPropertiesClass} obj Optional instance to populate. - * @return {module:model/AdditionalPropertiesClass} The populated AdditionalPropertiesClass instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('map_property')) { - obj['map_property'] = ApiClient.convertToType(data['map_property'], {'String': 'String'}); - } - if (data.hasOwnProperty('map_of_map_property')) { - obj['map_of_map_property'] = ApiClient.convertToType(data['map_of_map_property'], {'String': {'String': 'String'}}); - } + if (data.hasOwnProperty('map_property')) { + obj['map_property'] = ApiClient.convertToType(data['map_property'], {'String': 'String'}); + } + if (data.hasOwnProperty('map_of_map_property')) { + obj['map_of_map_property'] = ApiClient.convertToType(data['map_of_map_property'], {'String': {'String': 'String'}}); + } + } + return obj; } - return obj; - } - /** - * @member {Object.} map_property - */ - exports.prototype['map_property'] = undefined; - /** - * @member {Object.>} map_of_map_property - */ - exports.prototype['map_of_map_property'] = undefined; + /** + * @member {Object.} map_property + */ + map_property = undefined; + /** + * @member {Object.>} map_of_map_property + */ + map_of_map_property = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Animal.js b/samples/client/petstore/javascript-promise-es6/src/model/Animal.js index 09119420568..b3fb1a63f32 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Animal.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Animal.js @@ -7,86 +7,83 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Animal model module. +* @module model/Animal +* @version 1.0.0 +*/ +export default class Animal { + /** + * Constructs a new Animal. + * @alias module:model/Animal + * @class + * @param className {String} + */ + + constructor(className) { + + + + + + this['className'] = className; + + } - root.SwaggerPetstore.Animal = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Animal from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Animal} obj Optional instance to populate. + * @return {module:model/Animal} The populated Animal instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Animal(); + + + - - /** - * The Animal model module. - * @module model/Animal - * @version 1.0.0 - */ - - /** - * Constructs a new Animal. - * @alias module:model/Animal - * @class - * @param className {String} - */ - var exports = function(className) { - var _this = this; - - _this['className'] = className; - - }; - - /** - * Constructs a Animal from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Animal} obj Optional instance to populate. - * @return {module:model/Animal} The populated Animal instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('className')) { - obj['className'] = ApiClient.convertToType(data['className'], 'String'); - } - if (data.hasOwnProperty('color')) { - obj['color'] = ApiClient.convertToType(data['color'], 'String'); - } + if (data.hasOwnProperty('className')) { + obj['className'] = ApiClient.convertToType(data['className'], 'String'); + } + if (data.hasOwnProperty('color')) { + obj['color'] = ApiClient.convertToType(data['color'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} className - */ - exports.prototype['className'] = undefined; - /** - * @member {String} color - * @default 'red' - */ - exports.prototype['color'] = 'red'; + /** + * @member {String} className + */ + className = undefined; + /** + * @member {String} color + * @default 'red' + */ + color = 'red'; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js b/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js index 891009dab71..8dc9f00cadb 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js @@ -7,73 +7,72 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The AnimalFarm model module. +* @module model/AnimalFarm +* @version 1.0.0 +*/ +export default class AnimalFarm { + /** + * Constructs a new AnimalFarm. + * @alias module:model/AnimalFarm + * @class + * @extends Array + */ + + constructor() { + + this = new Array(); + Object.setPrototypeOf(this, AnimalFarm); + + + + + + + return this; } - root.SwaggerPetstore.AnimalFarm = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a AnimalFarm from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/AnimalFarm} obj Optional instance to populate. + * @return {module:model/AnimalFarm} The populated AnimalFarm instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new AnimalFarm(); + ApiClient.constructFromObject(data, obj, 'Animal'); + + - /** - * The AnimalFarm model module. - * @module model/AnimalFarm - * @version 1.0.0 - */ - - /** - * Constructs a new AnimalFarm. - * @alias module:model/AnimalFarm - * @class - * @extends Array - */ - var exports = function() { - var _this = this; - _this = new Array(); - Object.setPrototypeOf(_this, exports); - - return _this; - }; - - /** - * Constructs a AnimalFarm from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/AnimalFarm} obj Optional instance to populate. - * @return {module:model/AnimalFarm} The populated AnimalFarm instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - ApiClient.constructFromObject(data, obj, 'Animal'); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js b/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js index 12e9e16275f..49ddd1ac27f 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js @@ -7,92 +7,88 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ApiResponse model module. +* @module model/ApiResponse +* @version 1.0.0 +*/ +export default class ApiResponse { + /** + * Constructs a new ApiResponse. + * @alias module:model/ApiResponse + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ApiResponse = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ApiResponse from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ApiResponse} obj Optional instance to populate. + * @return {module:model/ApiResponse} The populated ApiResponse instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ApiResponse(); + + + - - /** - * The ApiResponse model module. - * @module model/ApiResponse - * @version 1.0.0 - */ - - /** - * Constructs a new ApiResponse. - * @alias module:model/ApiResponse - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a ApiResponse from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ApiResponse} obj Optional instance to populate. - * @return {module:model/ApiResponse} The populated ApiResponse instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('code')) { - obj['code'] = ApiClient.convertToType(data['code'], 'Number'); - } - if (data.hasOwnProperty('type')) { - obj['type'] = ApiClient.convertToType(data['type'], 'String'); - } - if (data.hasOwnProperty('message')) { - obj['message'] = ApiClient.convertToType(data['message'], 'String'); - } + if (data.hasOwnProperty('code')) { + obj['code'] = ApiClient.convertToType(data['code'], 'Number'); + } + if (data.hasOwnProperty('type')) { + obj['type'] = ApiClient.convertToType(data['type'], 'String'); + } + if (data.hasOwnProperty('message')) { + obj['message'] = ApiClient.convertToType(data['message'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} code - */ - exports.prototype['code'] = undefined; - /** - * @member {String} type - */ - exports.prototype['type'] = undefined; - /** - * @member {String} message - */ - exports.prototype['message'] = undefined; + /** + * @member {Number} code + */ + code = undefined; + /** + * @member {String} type + */ + type = undefined; + /** + * @member {String} message + */ + message = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js index c620c19e667..1dfd4487c62 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ArrayOfArrayOfNumberOnly model module. +* @module model/ArrayOfArrayOfNumberOnly +* @version 1.0.0 +*/ +export default class ArrayOfArrayOfNumberOnly { + /** + * Constructs a new ArrayOfArrayOfNumberOnly. + * @alias module:model/ArrayOfArrayOfNumberOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ArrayOfArrayOfNumberOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ArrayOfArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ArrayOfArrayOfNumberOnly} obj Optional instance to populate. + * @return {module:model/ArrayOfArrayOfNumberOnly} The populated ArrayOfArrayOfNumberOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ArrayOfArrayOfNumberOnly(); + + + - - /** - * The ArrayOfArrayOfNumberOnly model module. - * @module model/ArrayOfArrayOfNumberOnly - * @version 1.0.0 - */ - - /** - * Constructs a new ArrayOfArrayOfNumberOnly. - * @alias module:model/ArrayOfArrayOfNumberOnly - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ArrayOfArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ArrayOfArrayOfNumberOnly} obj Optional instance to populate. - * @return {module:model/ArrayOfArrayOfNumberOnly} The populated ArrayOfArrayOfNumberOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('ArrayArrayNumber')) { - obj['ArrayArrayNumber'] = ApiClient.convertToType(data['ArrayArrayNumber'], [['Number']]); - } + if (data.hasOwnProperty('ArrayArrayNumber')) { + obj['ArrayArrayNumber'] = ApiClient.convertToType(data['ArrayArrayNumber'], [['Number']]); + } + } + return obj; } - return obj; - } - /** - * @member {Array.>} ArrayArrayNumber - */ - exports.prototype['ArrayArrayNumber'] = undefined; + /** + * @member {Array.>} ArrayArrayNumber + */ + ArrayArrayNumber = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js index 66980b9b8d1..379a19ba3ff 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ArrayOfNumberOnly model module. +* @module model/ArrayOfNumberOnly +* @version 1.0.0 +*/ +export default class ArrayOfNumberOnly { + /** + * Constructs a new ArrayOfNumberOnly. + * @alias module:model/ArrayOfNumberOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ArrayOfNumberOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ArrayOfNumberOnly} obj Optional instance to populate. + * @return {module:model/ArrayOfNumberOnly} The populated ArrayOfNumberOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ArrayOfNumberOnly(); + + + - - /** - * The ArrayOfNumberOnly model module. - * @module model/ArrayOfNumberOnly - * @version 1.0.0 - */ - - /** - * Constructs a new ArrayOfNumberOnly. - * @alias module:model/ArrayOfNumberOnly - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ArrayOfNumberOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ArrayOfNumberOnly} obj Optional instance to populate. - * @return {module:model/ArrayOfNumberOnly} The populated ArrayOfNumberOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('ArrayNumber')) { - obj['ArrayNumber'] = ApiClient.convertToType(data['ArrayNumber'], ['Number']); - } + if (data.hasOwnProperty('ArrayNumber')) { + obj['ArrayNumber'] = ApiClient.convertToType(data['ArrayNumber'], ['Number']); + } + } + return obj; } - return obj; - } - /** - * @member {Array.} ArrayNumber - */ - exports.prototype['ArrayNumber'] = undefined; + /** + * @member {Array.} ArrayNumber + */ + ArrayNumber = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js b/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js index 2fb4ecb6c24..58e9ac58840 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js @@ -7,92 +7,89 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/ReadOnlyFirst'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./ReadOnlyFirst')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import ReadOnlyFirst from './ReadOnlyFirst'; + + + + + +/** +* The ArrayTest model module. +* @module model/ArrayTest +* @version 1.0.0 +*/ +export default class ArrayTest { + /** + * Constructs a new ArrayTest. + * @alias module:model/ArrayTest + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ArrayTest = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.ReadOnlyFirst); - } -}(this, function(ApiClient, ReadOnlyFirst) { - 'use strict'; + /** + * Constructs a ArrayTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ArrayTest} obj Optional instance to populate. + * @return {module:model/ArrayTest} The populated ArrayTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ArrayTest(); + + + - - /** - * The ArrayTest model module. - * @module model/ArrayTest - * @version 1.0.0 - */ - - /** - * Constructs a new ArrayTest. - * @alias module:model/ArrayTest - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a ArrayTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ArrayTest} obj Optional instance to populate. - * @return {module:model/ArrayTest} The populated ArrayTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('array_of_string')) { - obj['array_of_string'] = ApiClient.convertToType(data['array_of_string'], ['String']); - } - if (data.hasOwnProperty('array_array_of_integer')) { - obj['array_array_of_integer'] = ApiClient.convertToType(data['array_array_of_integer'], [['Number']]); - } - if (data.hasOwnProperty('array_array_of_model')) { - obj['array_array_of_model'] = ApiClient.convertToType(data['array_array_of_model'], [[ReadOnlyFirst]]); - } + if (data.hasOwnProperty('array_of_string')) { + obj['array_of_string'] = ApiClient.convertToType(data['array_of_string'], ['String']); + } + if (data.hasOwnProperty('array_array_of_integer')) { + obj['array_array_of_integer'] = ApiClient.convertToType(data['array_array_of_integer'], [['Number']]); + } + if (data.hasOwnProperty('array_array_of_model')) { + obj['array_array_of_model'] = ApiClient.convertToType(data['array_array_of_model'], [[ReadOnlyFirst]]); + } + } + return obj; } - return obj; - } - /** - * @member {Array.} array_of_string - */ - exports.prototype['array_of_string'] = undefined; - /** - * @member {Array.>} array_array_of_integer - */ - exports.prototype['array_array_of_integer'] = undefined; - /** - * @member {Array.>} array_array_of_model - */ - exports.prototype['array_array_of_model'] = undefined; + /** + * @member {Array.} array_of_string + */ + array_of_string = undefined; + /** + * @member {Array.>} array_array_of_integer + */ + array_array_of_integer = undefined; + /** + * @member {Array.>} array_array_of_model + */ + array_array_of_model = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js b/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js index 54154d396f8..12f3f3f5593 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js @@ -7,117 +7,110 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Capitalization model module. +* @module model/Capitalization +* @version 1.0.0 +*/ +export default class Capitalization { + /** + * Constructs a new Capitalization. + * @alias module:model/Capitalization + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Capitalization = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Capitalization from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Capitalization} obj Optional instance to populate. + * @return {module:model/Capitalization} The populated Capitalization instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Capitalization(); + + + - - /** - * The Capitalization model module. - * @module model/Capitalization - * @version 1.0.0 - */ - - /** - * Constructs a new Capitalization. - * @alias module:model/Capitalization - * @class - */ - var exports = function() { - var _this = this; - - - - - - - - }; - - /** - * Constructs a Capitalization from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Capitalization} obj Optional instance to populate. - * @return {module:model/Capitalization} The populated Capitalization instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('smallCamel')) { - obj['smallCamel'] = ApiClient.convertToType(data['smallCamel'], 'String'); - } - if (data.hasOwnProperty('CapitalCamel')) { - obj['CapitalCamel'] = ApiClient.convertToType(data['CapitalCamel'], 'String'); - } - if (data.hasOwnProperty('small_Snake')) { - obj['small_Snake'] = ApiClient.convertToType(data['small_Snake'], 'String'); - } - if (data.hasOwnProperty('Capital_Snake')) { - obj['Capital_Snake'] = ApiClient.convertToType(data['Capital_Snake'], 'String'); - } - if (data.hasOwnProperty('SCA_ETH_Flow_Points')) { - obj['SCA_ETH_Flow_Points'] = ApiClient.convertToType(data['SCA_ETH_Flow_Points'], 'String'); - } - if (data.hasOwnProperty('ATT_NAME')) { - obj['ATT_NAME'] = ApiClient.convertToType(data['ATT_NAME'], 'String'); - } + if (data.hasOwnProperty('smallCamel')) { + obj['smallCamel'] = ApiClient.convertToType(data['smallCamel'], 'String'); + } + if (data.hasOwnProperty('CapitalCamel')) { + obj['CapitalCamel'] = ApiClient.convertToType(data['CapitalCamel'], 'String'); + } + if (data.hasOwnProperty('small_Snake')) { + obj['small_Snake'] = ApiClient.convertToType(data['small_Snake'], 'String'); + } + if (data.hasOwnProperty('Capital_Snake')) { + obj['Capital_Snake'] = ApiClient.convertToType(data['Capital_Snake'], 'String'); + } + if (data.hasOwnProperty('SCA_ETH_Flow_Points')) { + obj['SCA_ETH_Flow_Points'] = ApiClient.convertToType(data['SCA_ETH_Flow_Points'], 'String'); + } + if (data.hasOwnProperty('ATT_NAME')) { + obj['ATT_NAME'] = ApiClient.convertToType(data['ATT_NAME'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} smallCamel - */ - exports.prototype['smallCamel'] = undefined; - /** - * @member {String} CapitalCamel - */ - exports.prototype['CapitalCamel'] = undefined; - /** - * @member {String} small_Snake - */ - exports.prototype['small_Snake'] = undefined; - /** - * @member {String} Capital_Snake - */ - exports.prototype['Capital_Snake'] = undefined; - /** - * @member {String} SCA_ETH_Flow_Points - */ - exports.prototype['SCA_ETH_Flow_Points'] = undefined; - /** - * Name of the pet - * @member {String} ATT_NAME - */ - exports.prototype['ATT_NAME'] = undefined; + /** + * @member {String} smallCamel + */ + smallCamel = undefined; + /** + * @member {String} CapitalCamel + */ + CapitalCamel = undefined; + /** + * @member {String} small_Snake + */ + small_Snake = undefined; + /** + * @member {String} Capital_Snake + */ + Capital_Snake = undefined; + /** + * @member {String} SCA_ETH_Flow_Points + */ + SCA_ETH_Flow_Points = undefined; + /** + * Name of the pet + * @member {String} ATT_NAME + */ + ATT_NAME = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Cat.js b/samples/client/petstore/javascript-promise-es6/src/model/Cat.js index 862e7b0c910..da946664d08 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Cat.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Cat.js @@ -7,81 +7,78 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The Cat model module. +* @module model/Cat +* @version 1.0.0 +*/ +export default class Cat { + /** + * Constructs a new Cat. + * @alias module:model/Cat + * @class + * @extends module:model/Animal + * @param className {String} + */ + + constructor(className) { + + + Animal.call(this, className); + + + + + } - root.SwaggerPetstore.Cat = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a Cat from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Cat} obj Optional instance to populate. + * @return {module:model/Cat} The populated Cat instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Cat(); + + Animal.constructFromObject(data, obj); + - /** - * The Cat model module. - * @module model/Cat - * @version 1.0.0 - */ - - /** - * Constructs a new Cat. - * @alias module:model/Cat - * @class - * @extends module:model/Animal - * @param className {String} - */ - var exports = function(className) { - var _this = this; - Animal.call(_this, className); - - }; - - /** - * Constructs a Cat from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Cat} obj Optional instance to populate. - * @return {module:model/Cat} The populated Cat instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - Animal.constructFromObject(data, obj); - if (data.hasOwnProperty('declawed')) { - obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean'); - } + if (data.hasOwnProperty('declawed')) { + obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean'); + } + } + return obj; } - return obj; - } - exports.prototype = Object.create(Animal.prototype); - exports.prototype.constructor = exports; - - /** - * @member {Boolean} declawed - */ - exports.prototype['declawed'] = undefined; + /** + * @member {Boolean} declawed + */ + declawed = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Category.js b/samples/client/petstore/javascript-promise-es6/src/model/Category.js index d7ecc2207da..a281817b72f 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Category.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Category.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Category model module. +* @module model/Category +* @version 1.0.0 +*/ +export default class Category { + /** + * Constructs a new Category. + * @alias module:model/Category + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Category = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Category from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Category} obj Optional instance to populate. + * @return {module:model/Category} The populated Category instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Category(); + + + - - /** - * The Category model module. - * @module model/Category - * @version 1.0.0 - */ - - /** - * Constructs a new Category. - * @alias module:model/Category - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a Category from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Category} obj Optional instance to populate. - * @return {module:model/Category} The populated Category instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {String} name - */ - exports.prototype['name'] = undefined; + /** + * @member {Number} id + */ + id = undefined; + /** + * @member {String} name + */ + name = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js b/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js index c3b7b83f9c5..6a558444ade 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js @@ -7,77 +7,75 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ClassModel model module. +* @module model/ClassModel +* @version 1.0.0 +*/ +export default class ClassModel { + /** + * Constructs a new ClassModel. + * Model for testing model with \"_class\" property + * @alias module:model/ClassModel + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ClassModel = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ClassModel from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ClassModel} obj Optional instance to populate. + * @return {module:model/ClassModel} The populated ClassModel instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ClassModel(); + + + - - /** - * The ClassModel model module. - * @module model/ClassModel - * @version 1.0.0 - */ - - /** - * Constructs a new ClassModel. - * Model for testing model with \"_class\" property - * @alias module:model/ClassModel - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ClassModel from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ClassModel} obj Optional instance to populate. - * @return {module:model/ClassModel} The populated ClassModel instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('_class')) { - obj['_class'] = ApiClient.convertToType(data['_class'], 'String'); - } + if (data.hasOwnProperty('_class')) { + obj['_class'] = ApiClient.convertToType(data['_class'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} _class - */ - exports.prototype['_class'] = undefined; + /** + * @member {String} _class + */ + _class = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Client.js b/samples/client/petstore/javascript-promise-es6/src/model/Client.js index a2912224910..a4f9b235154 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Client.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Client.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Client model module. +* @module model/Client +* @version 1.0.0 +*/ +export default class Client { + /** + * Constructs a new Client. + * @alias module:model/Client + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Client = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Client from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Client} obj Optional instance to populate. + * @return {module:model/Client} The populated Client instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Client(); + + + - - /** - * The Client model module. - * @module model/Client - * @version 1.0.0 - */ - - /** - * Constructs a new Client. - * @alias module:model/Client - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a Client from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Client} obj Optional instance to populate. - * @return {module:model/Client} The populated Client instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('client')) { - obj['client'] = ApiClient.convertToType(data['client'], 'String'); - } + if (data.hasOwnProperty('client')) { + obj['client'] = ApiClient.convertToType(data['client'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} client - */ - exports.prototype['client'] = undefined; + /** + * @member {String} client + */ + client = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Dog.js b/samples/client/petstore/javascript-promise-es6/src/model/Dog.js index 2cd286fb741..e5bc0d3cecf 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Dog.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Dog.js @@ -7,81 +7,78 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The Dog model module. +* @module model/Dog +* @version 1.0.0 +*/ +export default class Dog { + /** + * Constructs a new Dog. + * @alias module:model/Dog + * @class + * @extends module:model/Animal + * @param className {String} + */ + + constructor(className) { + + + Animal.call(this, className); + + + + + } - root.SwaggerPetstore.Dog = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a Dog from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Dog} obj Optional instance to populate. + * @return {module:model/Dog} The populated Dog instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Dog(); + + Animal.constructFromObject(data, obj); + - /** - * The Dog model module. - * @module model/Dog - * @version 1.0.0 - */ - - /** - * Constructs a new Dog. - * @alias module:model/Dog - * @class - * @extends module:model/Animal - * @param className {String} - */ - var exports = function(className) { - var _this = this; - Animal.call(_this, className); - - }; - - /** - * Constructs a Dog from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Dog} obj Optional instance to populate. - * @return {module:model/Dog} The populated Dog instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - Animal.constructFromObject(data, obj); - if (data.hasOwnProperty('breed')) { - obj['breed'] = ApiClient.convertToType(data['breed'], 'String'); - } + if (data.hasOwnProperty('breed')) { + obj['breed'] = ApiClient.convertToType(data['breed'], 'String'); + } + } + return obj; } - return obj; - } - exports.prototype = Object.create(Animal.prototype); - exports.prototype.constructor = exports; - - /** - * @member {String} breed - */ - exports.prototype['breed'] = undefined; + /** + * @member {String} breed + */ + breed = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js b/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js index 079cfe25084..20a74f0d883 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js @@ -7,118 +7,121 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The EnumArrays model module. +* @module model/EnumArrays +* @version 1.0.0 +*/ +export default class EnumArrays { + /** + * Constructs a new EnumArrays. + * @alias module:model/EnumArrays + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.EnumArrays = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a EnumArrays from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/EnumArrays} obj Optional instance to populate. + * @return {module:model/EnumArrays} The populated EnumArrays instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new EnumArrays(); + + + - - /** - * The EnumArrays model module. - * @module model/EnumArrays - * @version 1.0.0 - */ - - /** - * Constructs a new EnumArrays. - * @alias module:model/EnumArrays - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a EnumArrays from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/EnumArrays} obj Optional instance to populate. - * @return {module:model/EnumArrays} The populated EnumArrays instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('just_symbol')) { - obj['just_symbol'] = ApiClient.convertToType(data['just_symbol'], 'String'); - } - if (data.hasOwnProperty('array_enum')) { - obj['array_enum'] = ApiClient.convertToType(data['array_enum'], ['String']); - } + if (data.hasOwnProperty('just_symbol')) { + obj['just_symbol'] = ApiClient.convertToType(data['just_symbol'], 'String'); + } + if (data.hasOwnProperty('array_enum')) { + obj['array_enum'] = ApiClient.convertToType(data['array_enum'], ['String']); + } + } + return obj; } - return obj; - } - /** - * @member {module:model/EnumArrays.JustSymbolEnum} just_symbol - */ - exports.prototype['just_symbol'] = undefined; - /** - * @member {Array.} array_enum - */ - exports.prototype['array_enum'] = undefined; - - - /** - * Allowed values for the just_symbol property. - * @enum {String} - * @readonly - */ - exports.JustSymbolEnum = { /** - * value: ">=" - * @const - */ - "GREATER_THAN_OR_EQUAL_TO": ">=", + * @member {module:model/EnumArrays.JustSymbolEnum} just_symbol + */ + just_symbol = undefined; /** - * value: "$" - * @const - */ - "DOLLAR": "$" }; + * @member {Array.} array_enum + */ + array_enum = undefined; + + + + + - /** - * Allowed values for the arrayEnum property. - * @enum {String} - * @readonly - */ - exports.ArrayEnumEnum = { /** - * value: "fish" - * @const - */ - "fish": "fish", + * Allowed values for the just_symbol property. + * @enum {String} + * @readonly + */ + static JustSymbolEnum = { + + /** + * value: ">=" + * @const + */ + "GREATER_THAN_OR_EQUAL_TO": ">=", + + /** + * value: "$" + * @const + */ + "DOLLAR": "$" + }; + /** - * value: "crab" - * @const - */ - "crab": "crab" }; + * Allowed values for the arrayEnum property. + * @enum {String} + * @readonly + */ + static ArrayEnumEnum = { + + /** + * value: "fish" + * @const + */ + "fish": "fish", + + /** + * value: "crab" + * @const + */ + "crab": "crab" + }; - return exports; -})); + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js b/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js index 881a7503047..eeb08ca2864 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js @@ -7,63 +7,51 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + +/** +* Enum class EnumClass. +* @enum {} +* @readonly +*/ +export default class EnumClass { + + /** + * value: "_abc" + * @const + */ + _abc = "_abc"; + + + /** + * value: "-efg" + * @const + */ + -efg = "-efg"; + + + /** + * value: "(xyz)" + * @const + */ + (xyz) = "(xyz)"; + + + + /** + * Returns a EnumClass enum value from a Javascript object name. + * @param {Object} data The plain JavaScript object containing the name of the enum value. + * @return {module:model/EnumClass} The enum EnumClass value. + */ + static constructFromObject(object) { + return object; } - root.SwaggerPetstore.EnumClass = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; - - - /** - * Enum class EnumClass. - * @enum {} - * @readonly - */ - var exports = { - /** - * value: "_abc" - * @const - */ - "_abc": "_abc", - /** - * value: "-efg" - * @const - */ - "-efg": "-efg", - /** - * value: "(xyz)" - * @const - */ - "(xyz)": "(xyz)" }; - - /** - * Returns a EnumClass enum value from a Javascript object name. - * @param {Object} data The plain JavaScript object containing the name of the enum value. - * @return {module:model/EnumClass} The enum EnumClass value. - */ - exports.constructFromObject = function(object) { - return object; - } - - return exports; -})); +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js b/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js index 215bea59d38..b1f9b0b6c69 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js @@ -7,156 +7,162 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/OuterEnum'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./OuterEnum')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import OuterEnum from './OuterEnum'; + + + + + +/** +* The EnumTest model module. +* @module model/EnumTest +* @version 1.0.0 +*/ +export default class EnumTest { + /** + * Constructs a new EnumTest. + * @alias module:model/EnumTest + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.EnumTest = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.OuterEnum); - } -}(this, function(ApiClient, OuterEnum) { - 'use strict'; + /** + * Constructs a EnumTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/EnumTest} obj Optional instance to populate. + * @return {module:model/EnumTest} The populated EnumTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new EnumTest(); + + + - - /** - * The EnumTest model module. - * @module model/EnumTest - * @version 1.0.0 - */ - - /** - * Constructs a new EnumTest. - * @alias module:model/EnumTest - * @class - */ - var exports = function() { - var _this = this; - - - - - - }; - - /** - * Constructs a EnumTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/EnumTest} obj Optional instance to populate. - * @return {module:model/EnumTest} The populated EnumTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('enum_string')) { - obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String'); - } - if (data.hasOwnProperty('enum_integer')) { - obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number'); - } - if (data.hasOwnProperty('enum_number')) { - obj['enum_number'] = ApiClient.convertToType(data['enum_number'], 'Number'); - } - if (data.hasOwnProperty('outerEnum')) { - obj['outerEnum'] = OuterEnum.constructFromObject(data['outerEnum']); - } + if (data.hasOwnProperty('enum_string')) { + obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String'); + } + if (data.hasOwnProperty('enum_integer')) { + obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number'); + } + if (data.hasOwnProperty('enum_number')) { + obj['enum_number'] = ApiClient.convertToType(data['enum_number'], 'Number'); + } + if (data.hasOwnProperty('outerEnum')) { + obj['outerEnum'] = OuterEnum.constructFromObject(data['outerEnum']); + } + } + return obj; } - return obj; - } - /** - * @member {module:model/EnumTest.EnumStringEnum} enum_string - */ - exports.prototype['enum_string'] = undefined; - /** - * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer - */ - exports.prototype['enum_integer'] = undefined; - /** - * @member {module:model/EnumTest.EnumNumberEnum} enum_number - */ - exports.prototype['enum_number'] = undefined; - /** - * @member {module:model/OuterEnum} outerEnum - */ - exports.prototype['outerEnum'] = undefined; - - - /** - * Allowed values for the enum_string property. - * @enum {String} - * @readonly - */ - exports.EnumStringEnum = { /** - * value: "UPPER" - * @const - */ - "UPPER": "UPPER", + * @member {module:model/EnumTest.EnumStringEnum} enum_string + */ + enum_string = undefined; /** - * value: "lower" - * @const - */ - "lower": "lower", + * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer + */ + enum_integer = undefined; /** - * value: "" - * @const - */ - "empty": "" }; - - /** - * Allowed values for the enum_integer property. - * @enum {Number} - * @readonly - */ - exports.EnumIntegerEnum = { + * @member {module:model/EnumTest.EnumNumberEnum} enum_number + */ + enum_number = undefined; /** - * value: 1 - * @const - */ - "1": 1, - /** - * value: -1 - * @const - */ - "-1": -1 }; - - /** - * Allowed values for the enum_number property. - * @enum {Number} - * @readonly - */ - exports.EnumNumberEnum = { - /** - * value: 1.1 - * @const - */ - "1.1": 1.1, - /** - * value: -1.2 - * @const - */ - "-1.2": -1.2 }; + * @member {module:model/OuterEnum} outerEnum + */ + outerEnum = undefined; - return exports; -})); + + + + + /** + * Allowed values for the enum_string property. + * @enum {String} + * @readonly + */ + static EnumStringEnum = { + + /** + * value: "UPPER" + * @const + */ + "UPPER": "UPPER", + + /** + * value: "lower" + * @const + */ + "lower": "lower", + + /** + * value: "" + * @const + */ + "empty": "" + }; + + /** + * Allowed values for the enum_integer property. + * @enum {Number} + * @readonly + */ + static EnumIntegerEnum = { + + /** + * value: 1 + * @const + */ + "1": 1, + + /** + * value: -1 + * @const + */ + "-1": -1 + }; + + /** + * Allowed values for the enum_number property. + * @enum {Number} + * @readonly + */ + static EnumNumberEnum = { + + /** + * value: 1.1 + * @const + */ + "1.1": 1.1, + + /** + * value: -1.2 + * @const + */ + "-1.2": -1.2 + }; + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js b/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js index 238224d0132..8773a3a7755 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js @@ -7,176 +7,162 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The FormatTest model module. +* @module model/FormatTest +* @version 1.0.0 +*/ +export default class FormatTest { + /** + * Constructs a new FormatTest. + * @alias module:model/FormatTest + * @class + * @param _number {Number} + * @param _byte {Blob} + * @param _date {Date} + * @param password {String} + */ + + constructor(_number, _byte, _date, password) { + + + + + + this['number'] = _number;this['byte'] = _byte;this['date'] = _date;this['password'] = password; + + } - root.SwaggerPetstore.FormatTest = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a FormatTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/FormatTest} obj Optional instance to populate. + * @return {module:model/FormatTest} The populated FormatTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new FormatTest(); + + + - - /** - * The FormatTest model module. - * @module model/FormatTest - * @version 1.0.0 - */ - - /** - * Constructs a new FormatTest. - * @alias module:model/FormatTest - * @class - * @param _number {Number} - * @param _byte {Blob} - * @param _date {Date} - * @param password {String} - */ - var exports = function(_number, _byte, _date, password) { - var _this = this; - - - - - _this['number'] = _number; - - - - _this['byte'] = _byte; - - _this['date'] = _date; - - - _this['password'] = password; - }; - - /** - * Constructs a FormatTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/FormatTest} obj Optional instance to populate. - * @return {module:model/FormatTest} The populated FormatTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('integer')) { - obj['integer'] = ApiClient.convertToType(data['integer'], 'Number'); - } - if (data.hasOwnProperty('int32')) { - obj['int32'] = ApiClient.convertToType(data['int32'], 'Number'); - } - if (data.hasOwnProperty('int64')) { - obj['int64'] = ApiClient.convertToType(data['int64'], 'Number'); - } - if (data.hasOwnProperty('number')) { - obj['number'] = ApiClient.convertToType(data['number'], 'Number'); - } - if (data.hasOwnProperty('float')) { - obj['float'] = ApiClient.convertToType(data['float'], 'Number'); - } - if (data.hasOwnProperty('double')) { - obj['double'] = ApiClient.convertToType(data['double'], 'Number'); - } - if (data.hasOwnProperty('string')) { - obj['string'] = ApiClient.convertToType(data['string'], 'String'); - } - if (data.hasOwnProperty('byte')) { - obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob'); - } - if (data.hasOwnProperty('binary')) { - obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob'); - } - if (data.hasOwnProperty('date')) { - obj['date'] = ApiClient.convertToType(data['date'], 'Date'); - } - if (data.hasOwnProperty('dateTime')) { - obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); - } - if (data.hasOwnProperty('uuid')) { - obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); - } - if (data.hasOwnProperty('password')) { - obj['password'] = ApiClient.convertToType(data['password'], 'String'); - } + if (data.hasOwnProperty('integer')) { + obj['integer'] = ApiClient.convertToType(data['integer'], 'Number'); + } + if (data.hasOwnProperty('int32')) { + obj['int32'] = ApiClient.convertToType(data['int32'], 'Number'); + } + if (data.hasOwnProperty('int64')) { + obj['int64'] = ApiClient.convertToType(data['int64'], 'Number'); + } + if (data.hasOwnProperty('number')) { + obj['number'] = ApiClient.convertToType(data['number'], 'Number'); + } + if (data.hasOwnProperty('float')) { + obj['float'] = ApiClient.convertToType(data['float'], 'Number'); + } + if (data.hasOwnProperty('double')) { + obj['double'] = ApiClient.convertToType(data['double'], 'Number'); + } + if (data.hasOwnProperty('string')) { + obj['string'] = ApiClient.convertToType(data['string'], 'String'); + } + if (data.hasOwnProperty('byte')) { + obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob'); + } + if (data.hasOwnProperty('binary')) { + obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob'); + } + if (data.hasOwnProperty('date')) { + obj['date'] = ApiClient.convertToType(data['date'], 'Date'); + } + if (data.hasOwnProperty('dateTime')) { + obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); + } + if (data.hasOwnProperty('uuid')) { + obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); + } + if (data.hasOwnProperty('password')) { + obj['password'] = ApiClient.convertToType(data['password'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} integer - */ - exports.prototype['integer'] = undefined; - /** - * @member {Number} int32 - */ - exports.prototype['int32'] = undefined; - /** - * @member {Number} int64 - */ - exports.prototype['int64'] = undefined; - /** - * @member {Number} number - */ - exports.prototype['number'] = undefined; - /** - * @member {Number} float - */ - exports.prototype['float'] = undefined; - /** - * @member {Number} double - */ - exports.prototype['double'] = undefined; - /** - * @member {String} string - */ - exports.prototype['string'] = undefined; - /** - * @member {Blob} byte - */ - exports.prototype['byte'] = undefined; - /** - * @member {Blob} binary - */ - exports.prototype['binary'] = undefined; - /** - * @member {Date} date - */ - exports.prototype['date'] = undefined; - /** - * @member {Date} dateTime - */ - exports.prototype['dateTime'] = undefined; - /** - * @member {String} uuid - */ - exports.prototype['uuid'] = undefined; - /** - * @member {String} password - */ - exports.prototype['password'] = undefined; + /** + * @member {Number} integer + */ + integer = undefined; + /** + * @member {Number} int32 + */ + int32 = undefined; + /** + * @member {Number} int64 + */ + int64 = undefined; + /** + * @member {Number} number + */ + number = undefined; + /** + * @member {Number} float + */ + float = undefined; + /** + * @member {Number} double + */ + double = undefined; + /** + * @member {String} string + */ + string = undefined; + /** + * @member {Blob} byte + */ + byte = undefined; + /** + * @member {Blob} binary + */ + binary = undefined; + /** + * @member {Date} date + */ + date = undefined; + /** + * @member {Date} dateTime + */ + dateTime = undefined; + /** + * @member {String} uuid + */ + uuid = undefined; + /** + * @member {String} password + */ + password = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js index 566e0663de0..cb859fe3e50 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The HasOnlyReadOnly model module. +* @module model/HasOnlyReadOnly +* @version 1.0.0 +*/ +export default class HasOnlyReadOnly { + /** + * Constructs a new HasOnlyReadOnly. + * @alias module:model/HasOnlyReadOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.HasOnlyReadOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a HasOnlyReadOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/HasOnlyReadOnly} obj Optional instance to populate. + * @return {module:model/HasOnlyReadOnly} The populated HasOnlyReadOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new HasOnlyReadOnly(); + + + - - /** - * The HasOnlyReadOnly model module. - * @module model/HasOnlyReadOnly - * @version 1.0.0 - */ - - /** - * Constructs a new HasOnlyReadOnly. - * @alias module:model/HasOnlyReadOnly - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a HasOnlyReadOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/HasOnlyReadOnly} obj Optional instance to populate. - * @return {module:model/HasOnlyReadOnly} The populated HasOnlyReadOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('bar')) { - obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); - } - if (data.hasOwnProperty('foo')) { - obj['foo'] = ApiClient.convertToType(data['foo'], 'String'); - } + if (data.hasOwnProperty('bar')) { + obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); + } + if (data.hasOwnProperty('foo')) { + obj['foo'] = ApiClient.convertToType(data['foo'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} bar - */ - exports.prototype['bar'] = undefined; - /** - * @member {String} foo - */ - exports.prototype['foo'] = undefined; + /** + * @member {String} bar + */ + bar = undefined; + /** + * @member {String} foo + */ + foo = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/List.js b/samples/client/petstore/javascript-promise-es6/src/model/List.js index b5db0490fe4..513acd45aff 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/List.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/List.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The List model module. +* @module model/List +* @version 1.0.0 +*/ +export default class List { + /** + * Constructs a new List. + * @alias module:model/List + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.List = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a List from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/List} obj Optional instance to populate. + * @return {module:model/List} The populated List instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new List(); + + + - - /** - * The List model module. - * @module model/List - * @version 1.0.0 - */ - - /** - * Constructs a new List. - * @alias module:model/List - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a List from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/List} obj Optional instance to populate. - * @return {module:model/List} The populated List instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('123-list')) { - obj['123-list'] = ApiClient.convertToType(data['123-list'], 'String'); - } + if (data.hasOwnProperty('123-list')) { + obj['123-list'] = ApiClient.convertToType(data['123-list'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} 123-list - */ - exports.prototype['123-list'] = undefined; + /** + * @member {String} 123-list + */ + 123-list = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js b/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js index 59f089976c1..b7a60cd8d9d 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js @@ -7,101 +7,101 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; - } - root.SwaggerPetstore.MapTest = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + +import ApiClient from '../ApiClient'; - /** - * The MapTest model module. - * @module model/MapTest - * @version 1.0.0 - */ - /** - * Constructs a new MapTest. - * @alias module:model/MapTest - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a MapTest from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/MapTest} obj Optional instance to populate. - * @return {module:model/MapTest} The populated MapTest instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('map_map_of_string')) { - obj['map_map_of_string'] = ApiClient.convertToType(data['map_map_of_string'], {'String': {'String': 'String'}}); - } - if (data.hasOwnProperty('map_of_enum_string')) { - obj['map_of_enum_string'] = ApiClient.convertToType(data['map_of_enum_string'], {'String': 'String'}); - } - } - return obj; - } - - /** - * @member {Object.>} map_map_of_string - */ - exports.prototype['map_map_of_string'] = undefined; - /** - * @member {Object.} map_of_enum_string - */ - exports.prototype['map_of_enum_string'] = undefined; - - - /** - * Allowed values for the inner property. - * @enum {String} - * @readonly - */ - exports.InnerEnum = { +/** +* The MapTest model module. +* @module model/MapTest +* @version 1.0.0 +*/ +export default class MapTest { /** - * value: "UPPER" - * @const - */ - "UPPER": "UPPER", + * Constructs a new MapTest. + * @alias module:model/MapTest + * @class + */ + + constructor() { + + + + + + + + + } + /** - * value: "lower" - * @const - */ - "lower": "lower" }; + * Constructs a MapTest from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/MapTest} obj Optional instance to populate. + * @return {module:model/MapTest} The populated MapTest instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new MapTest(); + + + + + + if (data.hasOwnProperty('map_map_of_string')) { + obj['map_map_of_string'] = ApiClient.convertToType(data['map_map_of_string'], {'String': {'String': 'String'}}); + } + if (data.hasOwnProperty('map_of_enum_string')) { + obj['map_of_enum_string'] = ApiClient.convertToType(data['map_of_enum_string'], {'String': 'String'}); + } + } + return obj; + } + + /** + * @member {Object.>} map_map_of_string + */ + map_map_of_string = undefined; + /** + * @member {Object.} map_of_enum_string + */ + map_of_enum_string = undefined; - return exports; -})); + + + + + /** + * Allowed values for the inner property. + * @enum {String} + * @readonly + */ + static InnerEnum = { + + /** + * value: "UPPER" + * @const + */ + "UPPER": "UPPER", + + /** + * value: "lower" + * @const + */ + "lower": "lower" + }; + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js b/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js index 334b0773a04..6d912ceeb9b 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js @@ -7,92 +7,89 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Animal'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Animal')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Animal from './Animal'; + + + + + +/** +* The MixedPropertiesAndAdditionalPropertiesClass model module. +* @module model/MixedPropertiesAndAdditionalPropertiesClass +* @version 1.0.0 +*/ +export default class MixedPropertiesAndAdditionalPropertiesClass { + /** + * Constructs a new MixedPropertiesAndAdditionalPropertiesClass. + * @alias module:model/MixedPropertiesAndAdditionalPropertiesClass + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal); - } -}(this, function(ApiClient, Animal) { - 'use strict'; + /** + * Constructs a MixedPropertiesAndAdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/MixedPropertiesAndAdditionalPropertiesClass} obj Optional instance to populate. + * @return {module:model/MixedPropertiesAndAdditionalPropertiesClass} The populated MixedPropertiesAndAdditionalPropertiesClass instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new MixedPropertiesAndAdditionalPropertiesClass(); + + + - - /** - * The MixedPropertiesAndAdditionalPropertiesClass model module. - * @module model/MixedPropertiesAndAdditionalPropertiesClass - * @version 1.0.0 - */ - - /** - * Constructs a new MixedPropertiesAndAdditionalPropertiesClass. - * @alias module:model/MixedPropertiesAndAdditionalPropertiesClass - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a MixedPropertiesAndAdditionalPropertiesClass from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/MixedPropertiesAndAdditionalPropertiesClass} obj Optional instance to populate. - * @return {module:model/MixedPropertiesAndAdditionalPropertiesClass} The populated MixedPropertiesAndAdditionalPropertiesClass instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('uuid')) { - obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); - } - if (data.hasOwnProperty('dateTime')) { - obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); - } - if (data.hasOwnProperty('map')) { - obj['map'] = ApiClient.convertToType(data['map'], {'String': Animal}); - } + if (data.hasOwnProperty('uuid')) { + obj['uuid'] = ApiClient.convertToType(data['uuid'], 'String'); + } + if (data.hasOwnProperty('dateTime')) { + obj['dateTime'] = ApiClient.convertToType(data['dateTime'], 'Date'); + } + if (data.hasOwnProperty('map')) { + obj['map'] = ApiClient.convertToType(data['map'], {'String': Animal}); + } + } + return obj; } - return obj; - } - /** - * @member {String} uuid - */ - exports.prototype['uuid'] = undefined; - /** - * @member {Date} dateTime - */ - exports.prototype['dateTime'] = undefined; - /** - * @member {Object.} map - */ - exports.prototype['map'] = undefined; + /** + * @member {String} uuid + */ + uuid = undefined; + /** + * @member {Date} dateTime + */ + dateTime = undefined; + /** + * @member {Object.} map + */ + map = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js b/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js index a10e470be5c..df4d957df7c 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js @@ -7,85 +7,82 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Model200Response model module. +* @module model/Model200Response +* @version 1.0.0 +*/ +export default class Model200Response { + /** + * Constructs a new Model200Response. + * Model for testing model name starting with number + * @alias module:model/Model200Response + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Model200Response = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Model200Response from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Model200Response} obj Optional instance to populate. + * @return {module:model/Model200Response} The populated Model200Response instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Model200Response(); + + + - - /** - * The Model200Response model module. - * @module model/Model200Response - * @version 1.0.0 - */ - - /** - * Constructs a new Model200Response. - * Model for testing model name starting with number - * @alias module:model/Model200Response - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a Model200Response from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Model200Response} obj Optional instance to populate. - * @return {module:model/Model200Response} The populated Model200Response instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'Number'); - } - if (data.hasOwnProperty('class')) { - obj['class'] = ApiClient.convertToType(data['class'], 'String'); - } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'Number'); + } + if (data.hasOwnProperty('class')) { + obj['class'] = ApiClient.convertToType(data['class'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} name - */ - exports.prototype['name'] = undefined; - /** - * @member {String} class - */ - exports.prototype['class'] = undefined; + /** + * @member {Number} name + */ + name = undefined; + /** + * @member {String} class + */ + class = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js b/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js index 07467bbaa63..88fd97ab85f 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js @@ -7,77 +7,75 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ModelReturn model module. +* @module model/ModelReturn +* @version 1.0.0 +*/ +export default class ModelReturn { + /** + * Constructs a new ModelReturn. + * Model for testing reserved words + * @alias module:model/ModelReturn + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ModelReturn = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ModelReturn from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ModelReturn} obj Optional instance to populate. + * @return {module:model/ModelReturn} The populated ModelReturn instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ModelReturn(); + + + - - /** - * The ModelReturn model module. - * @module model/ModelReturn - * @version 1.0.0 - */ - - /** - * Constructs a new ModelReturn. - * Model for testing reserved words - * @alias module:model/ModelReturn - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a ModelReturn from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ModelReturn} obj Optional instance to populate. - * @return {module:model/ModelReturn} The populated ModelReturn instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('return')) { - obj['return'] = ApiClient.convertToType(data['return'], 'Number'); - } + if (data.hasOwnProperty('return')) { + obj['return'] = ApiClient.convertToType(data['return'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} return - */ - exports.prototype['return'] = undefined; + /** + * @member {Number} return + */ + return = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Name.js b/samples/client/petstore/javascript-promise-es6/src/model/Name.js index d79c05387fe..f355fbdd403 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Name.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Name.js @@ -7,102 +7,97 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Name model module. +* @module model/Name +* @version 1.0.0 +*/ +export default class Name { + /** + * Constructs a new Name. + * Model for testing model name same as property name + * @alias module:model/Name + * @class + * @param name {Number} + */ + + constructor(name) { + + + + + + this['name'] = name; + + } - root.SwaggerPetstore.Name = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Name from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Name} obj Optional instance to populate. + * @return {module:model/Name} The populated Name instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Name(); + + + - - /** - * The Name model module. - * @module model/Name - * @version 1.0.0 - */ - - /** - * Constructs a new Name. - * Model for testing model name same as property name - * @alias module:model/Name - * @class - * @param name {Number} - */ - var exports = function(name) { - var _this = this; - - _this['name'] = name; - - - - }; - - /** - * Constructs a Name from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Name} obj Optional instance to populate. - * @return {module:model/Name} The populated Name instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'Number'); - } - if (data.hasOwnProperty('snake_case')) { - obj['snake_case'] = ApiClient.convertToType(data['snake_case'], 'Number'); - } - if (data.hasOwnProperty('property')) { - obj['property'] = ApiClient.convertToType(data['property'], 'String'); - } - if (data.hasOwnProperty('123Number')) { - obj['123Number'] = ApiClient.convertToType(data['123Number'], 'Number'); - } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'Number'); + } + if (data.hasOwnProperty('snake_case')) { + obj['snake_case'] = ApiClient.convertToType(data['snake_case'], 'Number'); + } + if (data.hasOwnProperty('property')) { + obj['property'] = ApiClient.convertToType(data['property'], 'String'); + } + if (data.hasOwnProperty('123Number')) { + obj['123Number'] = ApiClient.convertToType(data['123Number'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} name - */ - exports.prototype['name'] = undefined; - /** - * @member {Number} snake_case - */ - exports.prototype['snake_case'] = undefined; - /** - * @member {String} property - */ - exports.prototype['property'] = undefined; - /** - * @member {Number} 123Number - */ - exports.prototype['123Number'] = undefined; + /** + * @member {Number} name + */ + name = undefined; + /** + * @member {Number} snake_case + */ + snake_case = undefined; + /** + * @member {String} property + */ + property = undefined; + /** + * @member {Number} 123Number + */ + 123Number = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js index c5edb0b0a50..bee66870891 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The NumberOnly model module. +* @module model/NumberOnly +* @version 1.0.0 +*/ +export default class NumberOnly { + /** + * Constructs a new NumberOnly. + * @alias module:model/NumberOnly + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.NumberOnly = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a NumberOnly from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/NumberOnly} obj Optional instance to populate. + * @return {module:model/NumberOnly} The populated NumberOnly instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new NumberOnly(); + + + - - /** - * The NumberOnly model module. - * @module model/NumberOnly - * @version 1.0.0 - */ - - /** - * Constructs a new NumberOnly. - * @alias module:model/NumberOnly - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a NumberOnly from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/NumberOnly} obj Optional instance to populate. - * @return {module:model/NumberOnly} The populated NumberOnly instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('JustNumber')) { - obj['JustNumber'] = ApiClient.convertToType(data['JustNumber'], 'Number'); - } + if (data.hasOwnProperty('JustNumber')) { + obj['JustNumber'] = ApiClient.convertToType(data['JustNumber'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} JustNumber - */ - exports.prototype['JustNumber'] = undefined; + /** + * @member {Number} JustNumber + */ + JustNumber = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Order.js b/samples/client/petstore/javascript-promise-es6/src/model/Order.js index f4f9087001d..ff704900bbc 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Order.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Order.js @@ -7,140 +7,137 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Order model module. +* @module model/Order +* @version 1.0.0 +*/ +export default class Order { + /** + * Constructs a new Order. + * @alias module:model/Order + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Order = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Order from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Order} obj Optional instance to populate. + * @return {module:model/Order} The populated Order instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Order(); + + + - - /** - * The Order model module. - * @module model/Order - * @version 1.0.0 - */ - - /** - * Constructs a new Order. - * @alias module:model/Order - * @class - */ - var exports = function() { - var _this = this; - - - - - - - - }; - - /** - * Constructs a Order from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Order} obj Optional instance to populate. - * @return {module:model/Order} The populated Order instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('petId')) { - obj['petId'] = ApiClient.convertToType(data['petId'], 'Number'); - } - if (data.hasOwnProperty('quantity')) { - obj['quantity'] = ApiClient.convertToType(data['quantity'], 'Number'); - } - if (data.hasOwnProperty('shipDate')) { - obj['shipDate'] = ApiClient.convertToType(data['shipDate'], 'Date'); - } - if (data.hasOwnProperty('status')) { - obj['status'] = ApiClient.convertToType(data['status'], 'String'); - } - if (data.hasOwnProperty('complete')) { - obj['complete'] = ApiClient.convertToType(data['complete'], 'Boolean'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('petId')) { + obj['petId'] = ApiClient.convertToType(data['petId'], 'Number'); + } + if (data.hasOwnProperty('quantity')) { + obj['quantity'] = ApiClient.convertToType(data['quantity'], 'Number'); + } + if (data.hasOwnProperty('shipDate')) { + obj['shipDate'] = ApiClient.convertToType(data['shipDate'], 'Date'); + } + if (data.hasOwnProperty('status')) { + obj['status'] = ApiClient.convertToType(data['status'], 'String'); + } + if (data.hasOwnProperty('complete')) { + obj['complete'] = ApiClient.convertToType(data['complete'], 'Boolean'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {Number} petId - */ - exports.prototype['petId'] = undefined; - /** - * @member {Number} quantity - */ - exports.prototype['quantity'] = undefined; - /** - * @member {Date} shipDate - */ - exports.prototype['shipDate'] = undefined; - /** - * Order Status - * @member {module:model/Order.StatusEnum} status - */ - exports.prototype['status'] = undefined; - /** - * @member {Boolean} complete - * @default false - */ - exports.prototype['complete'] = false; - - - /** - * Allowed values for the status property. - * @enum {String} - * @readonly - */ - exports.StatusEnum = { /** - * value: "placed" - * @const - */ - "placed": "placed", + * @member {Number} id + */ + id = undefined; /** - * value: "approved" - * @const - */ - "approved": "approved", + * @member {Number} petId + */ + petId = undefined; /** - * value: "delivered" - * @const - */ - "delivered": "delivered" }; + * @member {Number} quantity + */ + quantity = undefined; + /** + * @member {Date} shipDate + */ + shipDate = undefined; + /** + * Order Status + * @member {module:model/Order.StatusEnum} status + */ + status = undefined; + /** + * @member {Boolean} complete + * @default false + */ + complete = false; - return exports; -})); + + + + + /** + * Allowed values for the status property. + * @enum {String} + * @readonly + */ + static StatusEnum = { + + /** + * value: "placed" + * @const + */ + "placed": "placed", + + /** + * value: "approved" + * @const + */ + "approved": "approved", + + /** + * value: "delivered" + * @const + */ + "delivered": "delivered" + }; + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterBoolean.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterBoolean.js index 80f1a64b99b..592a0b69864 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/OuterBoolean.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterBoolean.js @@ -7,68 +7,67 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The OuterBoolean model module. +* @module model/OuterBoolean +* @version 1.0.0 +*/ +export default class OuterBoolean { + /** + * Constructs a new OuterBoolean. + * @alias module:model/OuterBoolean + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterBoolean = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a OuterBoolean from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterBoolean} obj Optional instance to populate. + * @return {module:model/OuterBoolean} The populated OuterBoolean instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterBoolean(); + + + - - /** - * The OuterBoolean model module. - * @module model/OuterBoolean - * @version 1.0.0 - */ - - /** - * Constructs a new OuterBoolean. - * @alias module:model/OuterBoolean - * @class - */ - var exports = function() { - var _this = this; - - }; - - /** - * Constructs a OuterBoolean from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterBoolean} obj Optional instance to populate. - * @return {module:model/OuterBoolean} The populated OuterBoolean instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js index 2a40ec942b5..327e303467a 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js @@ -7,92 +7,91 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/OuterBoolean', 'model/OuterNumber', 'model/OuterString'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./OuterBoolean'), require('./OuterNumber'), require('./OuterString')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import OuterBoolean from './OuterBoolean'; +import OuterNumber from './OuterNumber'; +import OuterString from './OuterString'; + + + + + +/** +* The OuterComposite model module. +* @module model/OuterComposite +* @version 1.0.0 +*/ +export default class OuterComposite { + /** + * Constructs a new OuterComposite. + * @alias module:model/OuterComposite + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterComposite = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.OuterBoolean, root.SwaggerPetstore.OuterNumber, root.SwaggerPetstore.OuterString); - } -}(this, function(ApiClient, OuterBoolean, OuterNumber, OuterString) { - 'use strict'; + /** + * Constructs a OuterComposite from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterComposite} obj Optional instance to populate. + * @return {module:model/OuterComposite} The populated OuterComposite instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterComposite(); + + + - - /** - * The OuterComposite model module. - * @module model/OuterComposite - * @version 1.0.0 - */ - - /** - * Constructs a new OuterComposite. - * @alias module:model/OuterComposite - * @class - */ - var exports = function() { - var _this = this; - - - - - }; - - /** - * Constructs a OuterComposite from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterComposite} obj Optional instance to populate. - * @return {module:model/OuterComposite} The populated OuterComposite instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('my_number')) { - obj['my_number'] = OuterNumber.constructFromObject(data['my_number']); - } - if (data.hasOwnProperty('my_string')) { - obj['my_string'] = OuterString.constructFromObject(data['my_string']); - } - if (data.hasOwnProperty('my_boolean')) { - obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']); - } + if (data.hasOwnProperty('my_number')) { + obj['my_number'] = OuterNumber.constructFromObject(data['my_number']); + } + if (data.hasOwnProperty('my_string')) { + obj['my_string'] = OuterString.constructFromObject(data['my_string']); + } + if (data.hasOwnProperty('my_boolean')) { + obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']); + } + } + return obj; } - return obj; - } - /** - * @member {module:model/OuterNumber} my_number - */ - exports.prototype['my_number'] = undefined; - /** - * @member {module:model/OuterString} my_string - */ - exports.prototype['my_string'] = undefined; - /** - * @member {module:model/OuterBoolean} my_boolean - */ - exports.prototype['my_boolean'] = undefined; + /** + * @member {module:model/OuterNumber} my_number + */ + my_number = undefined; + /** + * @member {module:model/OuterString} my_string + */ + my_string = undefined; + /** + * @member {module:model/OuterBoolean} my_boolean + */ + my_boolean = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js index 4ba975cf97a..bf264fd8f64 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js @@ -7,63 +7,51 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + +/** +* Enum class OuterEnum. +* @enum {} +* @readonly +*/ +export default class OuterEnum { + + /** + * value: "placed" + * @const + */ + placed = "placed"; + + + /** + * value: "approved" + * @const + */ + approved = "approved"; + + + /** + * value: "delivered" + * @const + */ + delivered = "delivered"; + + + + /** + * Returns a OuterEnum enum value from a Javascript object name. + * @param {Object} data The plain JavaScript object containing the name of the enum value. + * @return {module:model/OuterEnum} The enum OuterEnum value. + */ + static constructFromObject(object) { + return object; } - root.SwaggerPetstore.OuterEnum = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; - - - /** - * Enum class OuterEnum. - * @enum {} - * @readonly - */ - var exports = { - /** - * value: "placed" - * @const - */ - "placed": "placed", - /** - * value: "approved" - * @const - */ - "approved": "approved", - /** - * value: "delivered" - * @const - */ - "delivered": "delivered" }; - - /** - * Returns a OuterEnum enum value from a Javascript object name. - * @param {Object} data The plain JavaScript object containing the name of the enum value. - * @return {module:model/OuterEnum} The enum OuterEnum value. - */ - exports.constructFromObject = function(object) { - return object; - } - - return exports; -})); +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterNumber.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterNumber.js index f3ab0768253..ff65b1588b7 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/OuterNumber.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterNumber.js @@ -7,68 +7,67 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The OuterNumber model module. +* @module model/OuterNumber +* @version 1.0.0 +*/ +export default class OuterNumber { + /** + * Constructs a new OuterNumber. + * @alias module:model/OuterNumber + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterNumber = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a OuterNumber from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterNumber} obj Optional instance to populate. + * @return {module:model/OuterNumber} The populated OuterNumber instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterNumber(); + + + - - /** - * The OuterNumber model module. - * @module model/OuterNumber - * @version 1.0.0 - */ - - /** - * Constructs a new OuterNumber. - * @alias module:model/OuterNumber - * @class - */ - var exports = function() { - var _this = this; - - }; - - /** - * Constructs a OuterNumber from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterNumber} obj Optional instance to populate. - * @return {module:model/OuterNumber} The populated OuterNumber instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterString.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterString.js index 9edb9747a67..6921029ede1 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/OuterString.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterString.js @@ -7,68 +7,67 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The OuterString model module. +* @module model/OuterString +* @version 1.0.0 +*/ +export default class OuterString { + /** + * Constructs a new OuterString. + * @alias module:model/OuterString + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.OuterString = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a OuterString from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/OuterString} obj Optional instance to populate. + * @return {module:model/OuterString} The populated OuterString instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new OuterString(); + + + - - /** - * The OuterString model module. - * @module model/OuterString - * @version 1.0.0 - */ - - /** - * Constructs a new OuterString. - * @alias module:model/OuterString - * @class - */ - var exports = function() { - var _this = this; - - }; - - /** - * Constructs a OuterString from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/OuterString} obj Optional instance to populate. - * @return {module:model/OuterString} The populated OuterString instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - + } + return obj; } - return obj; - } - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Pet.js b/samples/client/petstore/javascript-promise-es6/src/model/Pet.js index d5e8d5010ac..bb849152027 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Pet.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Pet.js @@ -7,141 +7,140 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient', 'model/Category', 'model/Tag'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient'), require('./Category'), require('./Tag')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; +import Category from './Category'; +import Tag from './Tag'; + + + + + +/** +* The Pet model module. +* @module model/Pet +* @version 1.0.0 +*/ +export default class Pet { + /** + * Constructs a new Pet. + * @alias module:model/Pet + * @class + * @param name {String} + * @param photoUrls {Array.} + */ + + constructor(name, photoUrls) { + + + + + + this['name'] = name;this['photoUrls'] = photoUrls; + + } - root.SwaggerPetstore.Pet = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Category, root.SwaggerPetstore.Tag); - } -}(this, function(ApiClient, Category, Tag) { - 'use strict'; + /** + * Constructs a Pet from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Pet} obj Optional instance to populate. + * @return {module:model/Pet} The populated Pet instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Pet(); + + + - - /** - * The Pet model module. - * @module model/Pet - * @version 1.0.0 - */ - - /** - * Constructs a new Pet. - * @alias module:model/Pet - * @class - * @param name {String} - * @param photoUrls {Array.} - */ - var exports = function(name, photoUrls) { - var _this = this; - - - - _this['name'] = name; - _this['photoUrls'] = photoUrls; - - - }; - - /** - * Constructs a Pet from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Pet} obj Optional instance to populate. - * @return {module:model/Pet} The populated Pet instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('category')) { - obj['category'] = Category.constructFromObject(data['category']); - } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } - if (data.hasOwnProperty('photoUrls')) { - obj['photoUrls'] = ApiClient.convertToType(data['photoUrls'], ['String']); - } - if (data.hasOwnProperty('tags')) { - obj['tags'] = ApiClient.convertToType(data['tags'], [Tag]); - } - if (data.hasOwnProperty('status')) { - obj['status'] = ApiClient.convertToType(data['status'], 'String'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('category')) { + obj['category'] = Category.constructFromObject(data['category']); + } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'String'); + } + if (data.hasOwnProperty('photoUrls')) { + obj['photoUrls'] = ApiClient.convertToType(data['photoUrls'], ['String']); + } + if (data.hasOwnProperty('tags')) { + obj['tags'] = ApiClient.convertToType(data['tags'], [Tag]); + } + if (data.hasOwnProperty('status')) { + obj['status'] = ApiClient.convertToType(data['status'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {module:model/Category} category - */ - exports.prototype['category'] = undefined; - /** - * @member {String} name - */ - exports.prototype['name'] = undefined; - /** - * @member {Array.} photoUrls - */ - exports.prototype['photoUrls'] = undefined; - /** - * @member {Array.} tags - */ - exports.prototype['tags'] = undefined; - /** - * pet status in the store - * @member {module:model/Pet.StatusEnum} status - */ - exports.prototype['status'] = undefined; - - - /** - * Allowed values for the status property. - * @enum {String} - * @readonly - */ - exports.StatusEnum = { /** - * value: "available" - * @const - */ - "available": "available", + * @member {Number} id + */ + id = undefined; /** - * value: "pending" - * @const - */ - "pending": "pending", + * @member {module:model/Category} category + */ + category = undefined; /** - * value: "sold" - * @const - */ - "sold": "sold" }; + * @member {String} name + */ + name = undefined; + /** + * @member {Array.} photoUrls + */ + photoUrls = undefined; + /** + * @member {Array.} tags + */ + tags = undefined; + /** + * pet status in the store + * @member {module:model/Pet.StatusEnum} status + */ + status = undefined; - return exports; -})); + + + + + /** + * Allowed values for the status property. + * @enum {String} + * @readonly + */ + static StatusEnum = { + + /** + * value: "available" + * @const + */ + "available": "available", + + /** + * value: "pending" + * @const + */ + "pending": "pending", + + /** + * value: "sold" + * @const + */ + "sold": "sold" + }; + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js b/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js index 91612f15351..143b34f3eb1 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The ReadOnlyFirst model module. +* @module model/ReadOnlyFirst +* @version 1.0.0 +*/ +export default class ReadOnlyFirst { + /** + * Constructs a new ReadOnlyFirst. + * @alias module:model/ReadOnlyFirst + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.ReadOnlyFirst = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a ReadOnlyFirst from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/ReadOnlyFirst} obj Optional instance to populate. + * @return {module:model/ReadOnlyFirst} The populated ReadOnlyFirst instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new ReadOnlyFirst(); + + + - - /** - * The ReadOnlyFirst model module. - * @module model/ReadOnlyFirst - * @version 1.0.0 - */ - - /** - * Constructs a new ReadOnlyFirst. - * @alias module:model/ReadOnlyFirst - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a ReadOnlyFirst from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/ReadOnlyFirst} obj Optional instance to populate. - * @return {module:model/ReadOnlyFirst} The populated ReadOnlyFirst instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('bar')) { - obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); - } - if (data.hasOwnProperty('baz')) { - obj['baz'] = ApiClient.convertToType(data['baz'], 'String'); - } + if (data.hasOwnProperty('bar')) { + obj['bar'] = ApiClient.convertToType(data['bar'], 'String'); + } + if (data.hasOwnProperty('baz')) { + obj['baz'] = ApiClient.convertToType(data['baz'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {String} bar - */ - exports.prototype['bar'] = undefined; - /** - * @member {String} baz - */ - exports.prototype['baz'] = undefined; + /** + * @member {String} bar + */ + bar = undefined; + /** + * @member {String} baz + */ + baz = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js b/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js index bb13c09d956..4e0dd379b19 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js @@ -7,76 +7,74 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The SpecialModelName model module. +* @module model/SpecialModelName +* @version 1.0.0 +*/ +export default class SpecialModelName { + /** + * Constructs a new SpecialModelName. + * @alias module:model/SpecialModelName + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.SpecialModelName = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a SpecialModelName from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/SpecialModelName} obj Optional instance to populate. + * @return {module:model/SpecialModelName} The populated SpecialModelName instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new SpecialModelName(); + + + - - /** - * The SpecialModelName model module. - * @module model/SpecialModelName - * @version 1.0.0 - */ - - /** - * Constructs a new SpecialModelName. - * @alias module:model/SpecialModelName - * @class - */ - var exports = function() { - var _this = this; - - - }; - - /** - * Constructs a SpecialModelName from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/SpecialModelName} obj Optional instance to populate. - * @return {module:model/SpecialModelName} The populated SpecialModelName instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('$special[property.name]')) { - obj['$special[property.name]'] = ApiClient.convertToType(data['$special[property.name]'], 'Number'); - } + if (data.hasOwnProperty('$special[property.name]')) { + obj['$special[property.name]'] = ApiClient.convertToType(data['$special[property.name]'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} $special[property.name] - */ - exports.prototype['$special[property.name]'] = undefined; + /** + * @member {Number} $special[property.name] + */ + $special[property.name] = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Tag.js b/samples/client/petstore/javascript-promise-es6/src/model/Tag.js index 1066827e11e..759b3fa04e3 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/Tag.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/Tag.js @@ -7,84 +7,81 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The Tag model module. +* @module model/Tag +* @version 1.0.0 +*/ +export default class Tag { + /** + * Constructs a new Tag. + * @alias module:model/Tag + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.Tag = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a Tag from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/Tag} obj Optional instance to populate. + * @return {module:model/Tag} The populated Tag instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new Tag(); + + + - - /** - * The Tag model module. - * @module model/Tag - * @version 1.0.0 - */ - - /** - * Constructs a new Tag. - * @alias module:model/Tag - * @class - */ - var exports = function() { - var _this = this; - - - - }; - - /** - * Constructs a Tag from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/Tag} obj Optional instance to populate. - * @return {module:model/Tag} The populated Tag instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('name')) { + obj['name'] = ApiClient.convertToType(data['name'], 'String'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {String} name - */ - exports.prototype['name'] = undefined; + /** + * @member {Number} id + */ + id = undefined; + /** + * @member {String} name + */ + name = undefined; - return exports; -})); + + + + + +} diff --git a/samples/client/petstore/javascript-promise-es6/src/model/User.js b/samples/client/petstore/javascript-promise-es6/src/model/User.js index e96af875697..36311e75938 100644 --- a/samples/client/petstore/javascript-promise-es6/src/model/User.js +++ b/samples/client/petstore/javascript-promise-es6/src/model/User.js @@ -7,133 +7,124 @@ * * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen.git - * - * Swagger Codegen version: 2.2.3-SNAPSHOT - * * Do not edit the class manually. * */ -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['ApiClient'], factory); - } else if (typeof module === 'object' && module.exports) { - // CommonJS-like environments that support module.exports, like Node. - module.exports = factory(require('../ApiClient')); - } else { - // Browser globals (root is window) - if (!root.SwaggerPetstore) { - root.SwaggerPetstore = {}; + +import ApiClient from '../ApiClient'; + + + + + +/** +* The User model module. +* @module model/User +* @version 1.0.0 +*/ +export default class User { + /** + * Constructs a new User. + * @alias module:model/User + * @class + */ + + constructor() { + + + + + + + + } - root.SwaggerPetstore.User = factory(root.SwaggerPetstore.ApiClient); - } -}(this, function(ApiClient) { - 'use strict'; + /** + * Constructs a User from a plain JavaScript object, optionally creating a new instance. + * Copies all relevant properties from data to obj if supplied or a new instance if not. + * @param {Object} data The plain JavaScript object bearing properties of interest. + * @param {module:model/User} obj Optional instance to populate. + * @return {module:model/User} The populated User instance. + */ + static constructFromObject(data, obj) { + if (data) { + obj = obj || new User(); + + + - - /** - * The User model module. - * @module model/User - * @version 1.0.0 - */ - - /** - * Constructs a new User. - * @alias module:model/User - * @class - */ - var exports = function() { - var _this = this; - - - - - - - - - - }; - - /** - * Constructs a User from a plain JavaScript object, optionally creating a new instance. - * Copies all relevant properties from data to obj if supplied or a new instance if not. - * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/User} obj Optional instance to populate. - * @return {module:model/User} The populated User instance. - */ - exports.constructFromObject = function(data, obj) { - if (data) { - obj = obj || new exports(); - - if (data.hasOwnProperty('id')) { - obj['id'] = ApiClient.convertToType(data['id'], 'Number'); - } - if (data.hasOwnProperty('username')) { - obj['username'] = ApiClient.convertToType(data['username'], 'String'); - } - if (data.hasOwnProperty('firstName')) { - obj['firstName'] = ApiClient.convertToType(data['firstName'], 'String'); - } - if (data.hasOwnProperty('lastName')) { - obj['lastName'] = ApiClient.convertToType(data['lastName'], 'String'); - } - if (data.hasOwnProperty('email')) { - obj['email'] = ApiClient.convertToType(data['email'], 'String'); - } - if (data.hasOwnProperty('password')) { - obj['password'] = ApiClient.convertToType(data['password'], 'String'); - } - if (data.hasOwnProperty('phone')) { - obj['phone'] = ApiClient.convertToType(data['phone'], 'String'); - } - if (data.hasOwnProperty('userStatus')) { - obj['userStatus'] = ApiClient.convertToType(data['userStatus'], 'Number'); - } + if (data.hasOwnProperty('id')) { + obj['id'] = ApiClient.convertToType(data['id'], 'Number'); + } + if (data.hasOwnProperty('username')) { + obj['username'] = ApiClient.convertToType(data['username'], 'String'); + } + if (data.hasOwnProperty('firstName')) { + obj['firstName'] = ApiClient.convertToType(data['firstName'], 'String'); + } + if (data.hasOwnProperty('lastName')) { + obj['lastName'] = ApiClient.convertToType(data['lastName'], 'String'); + } + if (data.hasOwnProperty('email')) { + obj['email'] = ApiClient.convertToType(data['email'], 'String'); + } + if (data.hasOwnProperty('password')) { + obj['password'] = ApiClient.convertToType(data['password'], 'String'); + } + if (data.hasOwnProperty('phone')) { + obj['phone'] = ApiClient.convertToType(data['phone'], 'String'); + } + if (data.hasOwnProperty('userStatus')) { + obj['userStatus'] = ApiClient.convertToType(data['userStatus'], 'Number'); + } + } + return obj; } - return obj; - } - /** - * @member {Number} id - */ - exports.prototype['id'] = undefined; - /** - * @member {String} username - */ - exports.prototype['username'] = undefined; - /** - * @member {String} firstName - */ - exports.prototype['firstName'] = undefined; - /** - * @member {String} lastName - */ - exports.prototype['lastName'] = undefined; - /** - * @member {String} email - */ - exports.prototype['email'] = undefined; - /** - * @member {String} password - */ - exports.prototype['password'] = undefined; - /** - * @member {String} phone - */ - exports.prototype['phone'] = undefined; - /** - * User Status - * @member {Number} userStatus - */ - exports.prototype['userStatus'] = undefined; + /** + * @member {Number} id + */ + id = undefined; + /** + * @member {String} username + */ + username = undefined; + /** + * @member {String} firstName + */ + firstName = undefined; + /** + * @member {String} lastName + */ + lastName = undefined; + /** + * @member {String} email + */ + email = undefined; + /** + * @member {String} password + */ + password = undefined; + /** + * @member {String} phone + */ + phone = undefined; + /** + * User Status + * @member {Number} userStatus + */ + userStatus = undefined; - return exports; -})); + + + + + +} From 3808d679538a83d75ea805b847d88e9c5edb8b47 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 19 Jun 2017 01:28:39 +0800 Subject: [PATCH 05/33] move javascript-es6 templates under subfolder in Javascript --- bin/javascript-es6-petstore.sh | 2 +- bin/javascript-promise-es6-petstore.sh | 2 +- .../io/swagger/codegen/languages/JavascriptClientCodegen.java | 3 ++- .../{Javascript-es6 => Javascript/es6}/.babelrc.mustache | 0 .../{Javascript-es6 => Javascript/es6}/ApiClient.mustache | 0 .../{Javascript-es6 => Javascript/es6}/README.mustache | 0 .../resources/{Javascript-es6 => Javascript/es6}/api.mustache | 0 .../{Javascript-es6 => Javascript/es6}/api_doc.mustache | 0 .../{Javascript-es6 => Javascript/es6}/api_test.mustache | 0 .../{Javascript-es6 => Javascript/es6}/enumClass.mustache | 0 .../{Javascript-es6 => Javascript/es6}/git_push.sh.mustache | 0 .../{Javascript-es6 => Javascript/es6}/gitignore.mustache | 0 .../{Javascript-es6 => Javascript/es6}/index.mustache | 0 .../{Javascript-es6 => Javascript/es6}/licenseInfo.mustache | 0 .../resources/{Javascript-es6 => Javascript/es6}/mocha.opts | 0 .../{Javascript-es6 => Javascript/es6}/model.mustache | 0 .../{Javascript-es6 => Javascript/es6}/model_doc.mustache | 0 .../{Javascript-es6 => Javascript/es6}/model_test.mustache | 0 .../{Javascript-es6 => Javascript/es6}/package.mustache | 0 .../es6}/partial_model_enum_class.mustache | 0 .../es6}/partial_model_generic.mustache | 0 .../es6}/partial_model_inner_enum.mustache | 0 .../resources/{Javascript-es6 => Javascript/es6}/travis.yml | 0 23 files changed, 4 insertions(+), 3 deletions(-) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/.babelrc.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/ApiClient.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/README.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/api.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/api_doc.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/api_test.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/enumClass.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/git_push.sh.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/gitignore.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/index.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/licenseInfo.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/mocha.opts (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/model.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/model_doc.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/model_test.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/package.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/partial_model_enum_class.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/partial_model_generic.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/partial_model_inner_enum.mustache (100%) rename modules/swagger-codegen/src/main/resources/{Javascript-es6 => Javascript/es6}/travis.yml (100%) diff --git a/bin/javascript-es6-petstore.sh b/bin/javascript-es6-petstore.sh index 939e51b9446..a68f2c5b5ca 100755 --- a/bin/javascript-es6-petstore.sh +++ b/bin/javascript-es6-petstore.sh @@ -26,7 +26,7 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript-es6 \ +ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript/es6 \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript \ -o samples/client/petstore/javascript-es6 \ --additional-properties useEs6=true" diff --git a/bin/javascript-promise-es6-petstore.sh b/bin/javascript-promise-es6-petstore.sh index 410d1c8e4d8..e88788ddde5 100755 --- a/bin/javascript-promise-es6-petstore.sh +++ b/bin/javascript-promise-es6-petstore.sh @@ -26,7 +26,7 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript-es6 \ +ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript/es6 \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript \ -o samples/client/petstore/javascript-promise-es6 \ --additional-properties useEs6=true \ 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 854f0838925..88d8ef0e550 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 @@ -105,7 +105,8 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo modelTestTemplateFiles.put("model_test.mustache", ".js"); apiTemplateFiles.put("api.mustache", ".js"); apiTestTemplateFiles.put("api_test.mustache", ".js"); - embeddedTemplateDir = templateDir = "Javascript"; + // subfolder Javascript/es6 + embeddedTemplateDir = templateDir = "Javascript" + File.separator + "es6"; apiPackage = "api"; modelPackage = "model"; modelDocTemplateFiles.put("model_doc.mustache", ".md"); diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/.babelrc.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/.babelrc.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/.babelrc.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/.babelrc.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/ApiClient.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/ApiClient.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/ApiClient.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/README.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/README.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/README.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/README.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/api.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/api.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/api.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/api.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/api_doc.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/api_doc.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/api_doc.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/api_doc.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/api_test.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/api_test.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/api_test.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/api_test.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/enumClass.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/enumClass.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/enumClass.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/enumClass.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/git_push.sh.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/git_push.sh.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/git_push.sh.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/git_push.sh.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/gitignore.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/gitignore.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/gitignore.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/gitignore.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/index.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/index.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/index.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/index.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/licenseInfo.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/licenseInfo.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/licenseInfo.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/licenseInfo.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/mocha.opts b/modules/swagger-codegen/src/main/resources/Javascript/es6/mocha.opts similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/mocha.opts rename to modules/swagger-codegen/src/main/resources/Javascript/es6/mocha.opts diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/model.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/model.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/model.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/model.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/model_doc.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/model_doc.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/model_doc.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/model_doc.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/model_test.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/model_test.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/model_test.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/model_test.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/package.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/package.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/package.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/package.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_enum_class.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/partial_model_enum_class.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_enum_class.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/partial_model_enum_class.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_generic.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/partial_model_generic.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_generic.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/partial_model_generic.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_inner_enum.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/partial_model_inner_enum.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/partial_model_inner_enum.mustache rename to modules/swagger-codegen/src/main/resources/Javascript/es6/partial_model_inner_enum.mustache diff --git a/modules/swagger-codegen/src/main/resources/Javascript-es6/travis.yml b/modules/swagger-codegen/src/main/resources/Javascript/es6/travis.yml similarity index 100% rename from modules/swagger-codegen/src/main/resources/Javascript-es6/travis.yml rename to modules/swagger-codegen/src/main/resources/Javascript/es6/travis.yml From b5411a94f0cb0d2b72327b8337e02aa277950c08 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 19 Jun 2017 01:29:41 +0800 Subject: [PATCH 06/33] update swfit3 petstore samples --- .../default/PetstoreClient/Classes/Swaggers/Configuration.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Configuration.swift b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Configuration.swift index bb8625ea831..c03a10b930c 100644 --- a/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Configuration.swift +++ b/samples/client/petstore/swift3/default/PetstoreClient/Classes/Swaggers/Configuration.swift @@ -12,4 +12,4 @@ open class Configuration { // You must set it prior to encoding any dates, and it will only be read once. open static var dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" -} +} \ No newline at end of file From 84334146f9d168a0a0886e326d2eeb9a02d928d7 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 19 Jun 2017 09:59:19 +0800 Subject: [PATCH 07/33] better code format for cpprest --- .../resources/cpprest/model-source.mustache | 321 ++++++++++++++---- .../petstore/cpprest/model/ApiResponse.cpp | 24 +- .../petstore/cpprest/model/Category.cpp | 18 +- .../client/petstore/cpprest/model/Order.cpp | 36 +- samples/client/petstore/cpprest/model/Pet.cpp | 43 ++- samples/client/petstore/cpprest/model/Tag.cpp | 18 +- .../client/petstore/cpprest/model/User.cpp | 52 +-- 7 files changed, 352 insertions(+), 160 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache index 33a35a908a2..1830651b368 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache @@ -9,11 +9,26 @@ namespace {{this}} { {{classname}}::{{classname}}() { - {{#vars}}{{^isInherited}}{{#isNotContainer}}{{#isPrimitiveType}}m_{{name}} = {{{defaultValue}}}; - {{/isPrimitiveType}}{{^isPrimitiveType}}{{#isString}}m_{{name}} = {{{defaultValue}}}; - {{/isString}}{{#isDateTime}}m_{{name}} = {{{defaultValue}}}; - {{/isDateTime}}{{/isPrimitiveType}}{{/isNotContainer}}{{^required}}m_{{name}}IsSet = false; - {{/required}}{{/isInherited}}{{/vars}} + {{#vars}} + {{^isInherited}} + {{#isNotContainer}} + {{#isPrimitiveType}} + m_{{name}} = {{{defaultValue}}}; + {{/isPrimitiveType}} + {{^isPrimitiveType}} + {{#isString}} + m_{{name}} = {{{defaultValue}}}; + {{/isString}} + {{#isDateTime}} + m_{{name}} = {{{defaultValue}}}; + {{/isDateTime}} + {{/isPrimitiveType}} + {{/isNotContainer}} + {{^required}} + m_{{name}}IsSet = false; + {{/required}} + {{/isInherited}} + {{/vars}} } {{classname}}::~{{classname}}() @@ -27,59 +42,108 @@ void {{classname}}::validate() web::json::value {{classname}}::toJson() const { - {{#parent}}web::json::value val = this->{{{parent}}}::toJson(); {{/parent}} - {{^parent}}web::json::value val = web::json::value::object();{{/parent}} + {{#parent}} + web::json::value val = this->{{{parent}}}::toJson(); + {{/parent}} + {{^parent}} + web::json::value val = web::json::value::object(); + {{/parent}} - {{#vars}}{{^isInherited}}{{#isPrimitiveType}}{{^isListContainer}}{{^required}}if(m_{{name}}IsSet) + {{#vars}} + {{^isInherited}} + {{#isPrimitiveType}} + {{^isListContainer}} + {{^required}} + if(m_{{name}}IsSet) { val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); } - {{/required}}{{#required}}val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); - {{/required}}{{/isListContainer}}{{/isPrimitiveType}}{{#isListContainer}}{ + {{/required}} + {{#required}} + val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); + {{/required}} + {{/isListContainer}} + {{/isPrimitiveType}} + {{#isListContainer}} + { std::vector jsonArray; for( auto& item : m_{{name}} ) { jsonArray.push_back(ModelBase::toJson(item)); } - {{#required}}val[U("{{baseName}}")] = web::json::value::array(jsonArray); - {{/required}}{{^required}} + {{#required}} + val[U("{{baseName}}")] = web::json::value::array(jsonArray); + {{/required}} + {{^required}} if(jsonArray.size() > 0) { val[U("{{baseName}}")] = web::json::value::array(jsonArray); } {{/required}} } - {{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(m_{{name}}IsSet) + {{/isListContainer}} + {{^isListContainer}} + {{^isPrimitiveType}} + {{^required}} + if(m_{{name}}IsSet) { val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); } - {{/required}}{{#required}}val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); - {{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/isInherited}}{{/vars}} + {{/required}} + {{#required}} + val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); + {{/required}} + {{/isPrimitiveType}} + {{/isListContainer}} + {{/isInherited}} + {{/vars}} return val; } void {{classname}}::fromJson(web::json::value& val) { - {{#parent}}this->{{{parent}}}::fromJson(val); {{/parent}} + {{#parent}} + this->{{{parent}}}::fromJson(val); - {{#vars}}{{^isInherited}}{{#isPrimitiveType}}{{^isListContainer}}{{^required}}if(val.has_field(U("{{baseName}}"))) + {{/parent}} + {{#vars}} + {{^isInherited}} + {{#isPrimitiveType}} + {{^isListContainer}} + {{^required}} + if(val.has_field(U("{{baseName}}"))) { {{setter}}(ModelBase::{{baseType}}FromJson(val[U("{{baseName}}")])); } - {{/required}}{{#required}}{{setter}}(ModelBase::{{baseType}}FromJson(val[U("{{baseName}}")])); - {{/required}}{{/isListContainer}}{{/isPrimitiveType}}{{#isListContainer}}{ + {{/required}} + {{#required}} + {{setter}}(ModelBase::{{baseType}}FromJson(val[U("{{baseName}}")])); + {{/required}} + {{/isListContainer}} + {{/isPrimitiveType}} + {{#isListContainer}} + { m_{{name}}.clear(); std::vector jsonArray; - {{^required}}if(val.has_field(U("{{baseName}}"))) + {{^required}} + if(val.has_field(U("{{baseName}}"))) { {{/required}} for( auto& item : val[U("{{baseName}}")].as_array() ) { - {{#isPrimitiveType}}m_{{name}}.push_back(ModelBase::{{items.baseType}}FromJson(item)); - {{/isPrimitiveType}}{{^isPrimitiveType}}{{#items.isString}}m_{{name}}.push_back(ModelBase::stringFromJson(item)); - {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}m_{{name}}.push_back(ModelBase::dateFromJson(item)); - {{/items.isDateTime}}{{^items.isDateTime}} + {{#isPrimitiveType}} + m_{{name}}.push_back(ModelBase::{{items.baseType}}FromJson(item)); + {{/isPrimitiveType}} + {{^isPrimitiveType}} + {{#items.isString}} + m_{{name}}.push_back(ModelBase::stringFromJson(item)); + {{/items.isString}} + {{^items.isString}} + {{#items.isDateTime}} + m_{{name}}.push_back(ModelBase::dateFromJson(item)); + {{/items.isDateTime}} + {{^items.isDateTime}} if(item.is_null()) { m_{{name}}.push_back( {{{items.datatype}}}(nullptr) ); @@ -90,31 +154,63 @@ void {{classname}}::fromJson(web::json::value& val) newItem->fromJson(item); m_{{name}}.push_back( newItem ); } - {{/items.isDateTime}}{{/items.isString}}{{/isPrimitiveType}} + {{/items.isDateTime}} + {{/items.isString}} + {{/isPrimitiveType}} } {{^required}} } {{/required}} } - {{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(val.has_field(U("{{baseName}}"))) + {{/isListContainer}} + {{^isListContainer}} + {{^isPrimitiveType}} + {{^required}} + if(val.has_field(U("{{baseName}}"))) { - {{#isString}}{{setter}}(ModelBase::stringFromJson(val[U("{{baseName}}")])); - {{/isString}}{{^isString}}{{#isDateTime}}{{setter}}(ModelBase::dateFromJson(val[U("{{baseName}}")])); - {{/isDateTime}}{{^isDateTime}}if(!val[U("{{baseName}}")].is_null()) + {{#isString}} + {{setter}}(ModelBase::stringFromJson(val[U("{{baseName}}")])); + {{/isString}} + {{^isString}} + {{#isDateTime}} + {{setter}}(ModelBase::dateFromJson(val[U("{{baseName}}")])); + {{/isDateTime}} + {{^isDateTime}} + if(!val[U("{{baseName}}")].is_null()) { {{{datatype}}} newItem({{{defaultValue}}}); newItem->fromJson(val[U("{{baseName}}")]); {{setter}}( newItem ); } - {{/isDateTime}}{{/isString}} + {{/isDateTime}} + {{/isString}} } - {{/required}}{{#required}}{{#isString}}{{setter}}(ModelBase::stringFromJson(val[U("{{baseName}}")])); - {{/isString}}{{^isString}}{{#isDateTime}}{{setter}}(ModelBase::dateFromJson(val[U("{{baseName}}")])); - {{/isDateTime}}{{^isDateTime}}{{#vendorExtensions.x-codegen-file}}{{setter}}(ModelBase::fileFromJson(val[U("{{baseName}}")])); - {{/vendorExtensions.x-codegen-file}}{{^vendorExtensions.x-codegen-file}}{{{datatype}}} new{{name}}({{{defaultValue}}}); + {{/required}} + {{#required}} + {{#isString}} + {{setter}}(ModelBase::stringFromJson(val[U("{{baseName}}")])); + {{/isString}} + {{^isString}} + {{#isDateTime}} + {{setter}} + (ModelBase::dateFromJson(val[U("{{baseName}}")])); + {{/isDateTime}} + {{^isDateTime}} + {{#vendorExtensions.x-codegen-file}} + {{setter}}(ModelBase::fileFromJson(val[U("{{baseName}}")])); + {{/vendorExtensions.x-codegen-file}} + {{^vendorExtensions.x-codegen-file}} + {{{datatype}}} new{{name}}({{{defaultValue}}}); new{{name}}->fromJson(val[U("{{baseName}}")]); {{setter}}( new{{name}} ); - {{/vendorExtensions.x-codegen-file}}{{/isDateTime}}{{/isString}}{{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/isInherited}}{{/vars}} + {{/vendorExtensions.x-codegen-file}} + {{/isDateTime}} + {{/isString}} + {{/required}} + {{/isPrimitiveType}} + {{/isListContainer}} + {{/isInherited}} + {{/vars}} } void {{classname}}::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -125,12 +221,22 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co namePrefix += U("."); } - {{#vars}}{{#isPrimitiveType}}{{^isListContainer}}{{^required}}if(m_{{name}}IsSet) + {{#vars}} + {{#isPrimitiveType}} + {{^isListContainer}} + {{^required}} + if(m_{{name}}IsSet) { multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); } - {{/required}}{{#required}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); - {{/required}}{{/isListContainer}}{{/isPrimitiveType}}{{#isListContainer}}{ + {{/required}} + {{#required}} + multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); + {{/required}} + {{/isListContainer}} + {{/isPrimitiveType}} + {{#isListContainer}} + { std::vector jsonArray; for( auto& item : m_{{name}} ) { @@ -144,7 +250,11 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co } {{/required}} } - {{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(m_{{name}}IsSet) + {{/isListContainer}} + {{^isListContainer}} + {{^isPrimitiveType}} + {{^required}} + if(m_{{name}}IsSet) { {{#isString}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); {{/isString}}{{^isString}}{{#isDateTime}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); @@ -154,11 +264,28 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co } {{/isDateTime}}{{/isString}} } - {{/required}}{{#required}}{{#isString}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); - {{/isString}}{{^isString}}{{#isDateTime}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); - {{/isDateTime}}{{^isDateTime}}{{#vendorExtensions.x-codegen-file}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); - {{/vendorExtensions.x-codegen-file}}{{^vendorExtensions.x-codegen-file}}m_{{name}}->toMultipart(multipart, U("{{baseName}}.")); - {{/vendorExtensions.x-codegen-file}}{{/isDateTime}}{{/isString}}{{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/vars}} + {{/required}} + {{#required}} + {{#isString}} + multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); + {{/isString}} + {{^isString}} + {{#isDateTime}} + multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); + {{/isDateTime}} + {{^isDateTime}} + {{#vendorExtensions.x-codegen-file}} + multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); + {{/vendorExtensions.x-codegen-file}} + {{^vendorExtensions.x-codegen-file}} + m_{{name}}->toMultipart(multipart, U("{{baseName}}.")); + {{/vendorExtensions.x-codegen-file}} + {{/isDateTime}} + {{/isString}} + {{/required}} + {{/isPrimitiveType}} + {{/isListContainer}} + {{/vars}} } void {{classname}}::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -169,24 +296,43 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, namePrefix += U("."); } - {{#vars}}{{#isPrimitiveType}}{{^isListContainer}}{{^required}}if(multipart->hasContent(U("{{baseName}}"))) + {{#vars}} + {{#isPrimitiveType}} + {{^isListContainer}} + {{^required}} + if(multipart->hasContent(U("{{baseName}}"))) { {{setter}}(ModelBase::{{baseType}}FromHttpContent(multipart->getContent(U("{{baseName}}")))); } - {{/required}}{{#required}}{{setter}}(ModelBase::{{baseType}}FromHttpContent(multipart->getContent(U("{{baseName}}")))); - {{/required}}{{/isListContainer}}{{/isPrimitiveType}}{{#isListContainer}}{ + {{/required}} + {{#required}} + {{setter}}(ModelBase::{{baseType}}FromHttpContent(multipart->getContent(U("{{baseName}}")))); + {{/required}} + {{/isListContainer}} + {{/isPrimitiveType}} + {{#isListContainer}} + { m_{{name}}.clear(); - {{^required}}if(multipart->hasContent(U("{{baseName}}"))) + {{^required}} + if(multipart->hasContent(U("{{baseName}}"))) { {{/required}} web::json::value jsonArray = web::json::value::parse(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); for( auto& item : jsonArray.as_array() ) { - {{#isPrimitiveType}}m_{{name}}.push_back(ModelBase::{{items.baseType}}FromJson(item)); - {{/isPrimitiveType}}{{^isPrimitiveType}}{{#items.isString}}m_{{name}}.push_back(ModelBase::stringFromJson(item)); - {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}m_{{name}}.push_back(ModelBase::dateFromJson(item)); - {{/items.isDateTime}}{{^items.isDateTime}} + {{#isPrimitiveType}} + m_{{name}}.push_back(ModelBase::{{items.baseType}}FromJson(item)); + {{/isPrimitiveType}} + {{^isPrimitiveType}} + {{#items.isString}} + m_{{name}}.push_back(ModelBase::stringFromJson(item)); + {{/items.isString}} + {{^items.isString}} + {{#items.isDateTime}} + m_{{name}}.push_back(ModelBase::dateFromJson(item)); + {{/items.isDateTime}} + {{^items.isDateTime}} if(item.is_null()) { m_{{name}}.push_back( {{{items.datatype}}}(nullptr) ); @@ -197,60 +343,99 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, newItem->fromJson(item); m_{{name}}.push_back( newItem ); } - {{/items.isDateTime}}{{/items.isString}}{{/isPrimitiveType}} + {{/items.isDateTime}} + {{/items.isString}} + {{/isPrimitiveType}} } {{^required}} } {{/required}} } - {{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(multipart->hasContent(U("{{baseName}}"))) + {{/isListContainer}} + {{^isListContainer}} + {{^isPrimitiveType}} + {{^required}} + if(multipart->hasContent(U("{{baseName}}"))) { - {{#isString}}{{setter}}(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); - {{/isString}}{{^isString}}{{#isDateTime}}{{setter}}(ModelBase::dateFromHttpContent(multipart->getContent(U("{{baseName}}")))); - {{/isDateTime}}{{^isDateTime}}if(multipart->hasContent(U("{{baseName}}"))) + {{#isString}} + {{setter}}(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); + {{/isString}} + {{^isString}} + {{#isDateTime}} + {{setter}}(ModelBase::dateFromHttpContent(multipart->getContent(U("{{baseName}}")))); + {{/isDateTime}} + {{^isDateTime}} + if(multipart->hasContent(U("{{baseName}}"))) { {{{datatype}}} newItem({{{defaultValue}}}); newItem->fromMultiPart(multipart, U("{{baseName}}.")); {{setter}}( newItem ); } - {{/isDateTime}}{{/isString}} + {{/isDateTime}} + {{/isString}} } - {{/required}}{{#required}}{{#isString}}{{setter}}(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); - {{/isString}}{{^isString}}{{#isDateTime}}{{setter}}(ModelBase::dateFromHttpContent(multipart->getContent(U("{{baseName}}")))); - {{/isDateTime}}{{^isDateTime}}{{#vendorExtensions.x-codegen-file}}{{setter}}(multipart->getContent(U("{{baseName}}"))); - {{/vendorExtensions.x-codegen-file}}{{^vendorExtensions.x-codegen-file}}{{{datatype}}} new{{name}}({{{defaultValue}}}); + {{/required}} + {{#required}} + {{#isString}} + {{setter}}(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); + {{/isString}} + {{^isString}} + {{#isDateTime}} + {{setter}}(ModelBase::dateFromHttpContent(multipart->getContent(U("{{baseName}}")))); + {{/isDateTime}} + {{^isDateTime}} + {{#vendorExtensions.x-codegen-file}} + {{setter}}(multipart->getContent(U("{{baseName}}"))); + {{/vendorExtensions.x-codegen-file}} + {{^vendorExtensions.x-codegen-file}} + {{{datatype}}} new{{name}}({{{defaultValue}}}); new{{name}}->fromMultiPart(multipart, U("{{baseName}}.")); {{setter}}( new{{name}} ); - {{/vendorExtensions.x-codegen-file}}{{/isDateTime}}{{/isString}}{{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/vars}} + {{/vendorExtensions.x-codegen-file}} + {{/isDateTime}} + {{/isString}} + {{/required}} + {{/isPrimitiveType}} + {{/isListContainer}} + {{/vars}} } - -{{#vars}}{{^isInherited}}{{^isNotContainer}}{{{datatype}}}& {{classname}}::{{getter}}() +{{#vars}} +{{^isInherited}} +{{^isNotContainer}} +{{{datatype}}}& {{classname}}::{{getter}}() { return m_{{name}}; } -{{/isNotContainer}}{{#isNotContainer}}{{{datatype}}} {{classname}}::{{getter}}() const + +{{/isNotContainer}} +{{#isNotContainer}} +{{{datatype}}} {{classname}}::{{getter}}() const { return m_{{name}}; } + void {{classname}}::{{setter}}({{{datatype}}} value) { m_{{name}} = value; {{^required}}m_{{name}}IsSet = true;{{/required}} } + {{/isNotContainer}} -{{^required}}bool {{classname}}::{{baseName}}IsSet() const +{{^required}} +bool {{classname}}::{{baseName}}IsSet() const { return m_{{name}}IsSet; } + void {{classname}}::unset{{name}}() { m_{{name}}IsSet = false; } + {{/required}} {{/isInherited}} {{/vars}} - {{#modelNamespaceDeclarations}} } {{/modelNamespaceDeclarations}} diff --git a/samples/client/petstore/cpprest/model/ApiResponse.cpp b/samples/client/petstore/cpprest/model/ApiResponse.cpp index d7aea45f956..255660cf02b 100644 --- a/samples/client/petstore/cpprest/model/ApiResponse.cpp +++ b/samples/client/petstore/cpprest/model/ApiResponse.cpp @@ -27,7 +27,6 @@ ApiResponse::ApiResponse() m_TypeIsSet = false; m_Message = U(""); m_MessageIsSet = false; - } ApiResponse::~ApiResponse() @@ -41,7 +40,6 @@ void ApiResponse::validate() web::json::value ApiResponse::toJson() const { - web::json::value val = web::json::value::object(); if(m_CodeIsSet) @@ -56,15 +54,12 @@ web::json::value ApiResponse::toJson() const { val[U("message")] = ModelBase::toJson(m_Message); } - return val; } void ApiResponse::fromJson(web::json::value& val) { - - if(val.has_field(U("code"))) { setCode(ModelBase::int32_tFromJson(val[U("code")])); @@ -72,14 +67,11 @@ void ApiResponse::fromJson(web::json::value& val) if(val.has_field(U("type"))) { setType(ModelBase::stringFromJson(val[U("type")])); - } if(val.has_field(U("message"))) { setMessage(ModelBase::stringFromJson(val[U("message")])); - } - } void ApiResponse::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -104,7 +96,6 @@ void ApiResponse::toMultipart(std::shared_ptr multipart, cons multipart->add(ModelBase::toHttpContent(namePrefix + U("message"), m_Message)); } - } void ApiResponse::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -122,64 +113,71 @@ void ApiResponse::fromMultiPart(std::shared_ptr multipart, co if(multipart->hasContent(U("type"))) { setType(ModelBase::stringFromHttpContent(multipart->getContent(U("type")))); - } if(multipart->hasContent(U("message"))) { setMessage(ModelBase::stringFromHttpContent(multipart->getContent(U("message")))); - } - } - int32_t ApiResponse::getCode() const { return m_Code; } + void ApiResponse::setCode(int32_t value) { m_Code = value; m_CodeIsSet = true; } + bool ApiResponse::codeIsSet() const { return m_CodeIsSet; } + void ApiResponse::unsetCode() { m_CodeIsSet = false; } + utility::string_t ApiResponse::getType() const { return m_Type; } + void ApiResponse::setType(utility::string_t value) { m_Type = value; m_TypeIsSet = true; } + bool ApiResponse::typeIsSet() const { return m_TypeIsSet; } + void ApiResponse::unsetType() { m_TypeIsSet = false; } + utility::string_t ApiResponse::getMessage() const { return m_Message; } + void ApiResponse::setMessage(utility::string_t value) { m_Message = value; m_MessageIsSet = true; } + bool ApiResponse::messageIsSet() const { return m_MessageIsSet; } + void ApiResponse::unsetMessage() { m_MessageIsSet = false; diff --git a/samples/client/petstore/cpprest/model/Category.cpp b/samples/client/petstore/cpprest/model/Category.cpp index 57777c42271..19e14171b7a 100644 --- a/samples/client/petstore/cpprest/model/Category.cpp +++ b/samples/client/petstore/cpprest/model/Category.cpp @@ -25,7 +25,6 @@ Category::Category() m_IdIsSet = false; m_Name = U(""); m_NameIsSet = false; - } Category::~Category() @@ -39,7 +38,6 @@ void Category::validate() web::json::value Category::toJson() const { - web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -50,15 +48,12 @@ web::json::value Category::toJson() const { val[U("name")] = ModelBase::toJson(m_Name); } - return val; } void Category::fromJson(web::json::value& val) { - - if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); @@ -66,9 +61,7 @@ void Category::fromJson(web::json::value& val) if(val.has_field(U("name"))) { setName(ModelBase::stringFromJson(val[U("name")])); - } - } void Category::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -88,7 +81,6 @@ void Category::toMultipart(std::shared_ptr multipart, const u multipart->add(ModelBase::toHttpContent(namePrefix + U("name"), m_Name)); } - } void Category::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -106,42 +98,46 @@ void Category::fromMultiPart(std::shared_ptr multipart, const if(multipart->hasContent(U("name"))) { setName(ModelBase::stringFromHttpContent(multipart->getContent(U("name")))); - } - } - int64_t Category::getId() const { return m_Id; } + void Category::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } + bool Category::idIsSet() const { return m_IdIsSet; } + void Category::unsetId() { m_IdIsSet = false; } + utility::string_t Category::getName() const { return m_Name; } + void Category::setName(utility::string_t value) { m_Name = value; m_NameIsSet = true; } + bool Category::nameIsSet() const { return m_NameIsSet; } + void Category::unsetName() { m_NameIsSet = false; diff --git a/samples/client/petstore/cpprest/model/Order.cpp b/samples/client/petstore/cpprest/model/Order.cpp index a64b12f3683..f9ed1375ece 100644 --- a/samples/client/petstore/cpprest/model/Order.cpp +++ b/samples/client/petstore/cpprest/model/Order.cpp @@ -33,7 +33,6 @@ Order::Order() m_StatusIsSet = false; m_Complete = false; m_CompleteIsSet = false; - } Order::~Order() @@ -47,7 +46,6 @@ void Order::validate() web::json::value Order::toJson() const { - web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -74,15 +72,12 @@ web::json::value Order::toJson() const { val[U("complete")] = ModelBase::toJson(m_Complete); } - return val; } void Order::fromJson(web::json::value& val) { - - if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); @@ -98,18 +93,15 @@ void Order::fromJson(web::json::value& val) if(val.has_field(U("shipDate"))) { setShipDate(ModelBase::dateFromJson(val[U("shipDate")])); - } if(val.has_field(U("status"))) { setStatus(ModelBase::stringFromJson(val[U("status")])); - } if(val.has_field(U("complete"))) { setComplete(ModelBase::boolFromJson(val[U("complete")])); } - } void Order::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -146,7 +138,6 @@ void Order::toMultipart(std::shared_ptr multipart, const util { multipart->add(ModelBase::toHttpContent(namePrefix + U("complete"), m_Complete)); } - } void Order::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -172,119 +163,138 @@ void Order::fromMultiPart(std::shared_ptr multipart, const ut if(multipart->hasContent(U("shipDate"))) { setShipDate(ModelBase::dateFromHttpContent(multipart->getContent(U("shipDate")))); - } if(multipart->hasContent(U("status"))) { setStatus(ModelBase::stringFromHttpContent(multipart->getContent(U("status")))); - } if(multipart->hasContent(U("complete"))) { setComplete(ModelBase::boolFromHttpContent(multipart->getContent(U("complete")))); } - } - int64_t Order::getId() const { return m_Id; } + void Order::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } + bool Order::idIsSet() const { return m_IdIsSet; } + void Order::unsetId() { m_IdIsSet = false; } + int64_t Order::getPetId() const { return m_PetId; } + void Order::setPetId(int64_t value) { m_PetId = value; m_PetIdIsSet = true; } + bool Order::petIdIsSet() const { return m_PetIdIsSet; } + void Order::unsetPetId() { m_PetIdIsSet = false; } + int32_t Order::getQuantity() const { return m_Quantity; } + void Order::setQuantity(int32_t value) { m_Quantity = value; m_QuantityIsSet = true; } + bool Order::quantityIsSet() const { return m_QuantityIsSet; } + void Order::unsetQuantity() { m_QuantityIsSet = false; } + utility::datetime Order::getShipDate() const { return m_ShipDate; } + void Order::setShipDate(utility::datetime value) { m_ShipDate = value; m_ShipDateIsSet = true; } + bool Order::shipDateIsSet() const { return m_ShipDateIsSet; } + void Order::unsetShipDate() { m_ShipDateIsSet = false; } + utility::string_t Order::getStatus() const { return m_Status; } + void Order::setStatus(utility::string_t value) { m_Status = value; m_StatusIsSet = true; } + bool Order::statusIsSet() const { return m_StatusIsSet; } + void Order::unsetStatus() { m_StatusIsSet = false; } + bool Order::getComplete() const { return m_Complete; } + void Order::setComplete(bool value) { m_Complete = value; m_CompleteIsSet = true; } + bool Order::completeIsSet() const { return m_CompleteIsSet; } + void Order::unsetComplete() { m_CompleteIsSet = false; diff --git a/samples/client/petstore/cpprest/model/Pet.cpp b/samples/client/petstore/cpprest/model/Pet.cpp index 6414c9bb35c..a59a8da759e 100644 --- a/samples/client/petstore/cpprest/model/Pet.cpp +++ b/samples/client/petstore/cpprest/model/Pet.cpp @@ -28,7 +28,6 @@ Pet::Pet() m_TagsIsSet = false; m_Status = U(""); m_StatusIsSet = false; - } Pet::~Pet() @@ -42,7 +41,6 @@ void Pet::validate() web::json::value Pet::toJson() const { - web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -61,14 +59,13 @@ web::json::value Pet::toJson() const jsonArray.push_back(ModelBase::toJson(item)); } val[U("photoUrls")] = web::json::value::array(jsonArray); - } + } { std::vector jsonArray; for( auto& item : m_Tags ) { jsonArray.push_back(ModelBase::toJson(item)); } - if(jsonArray.size() > 0) { val[U("tags")] = web::json::value::array(jsonArray); @@ -78,15 +75,12 @@ web::json::value Pet::toJson() const { val[U("status")] = ModelBase::toJson(m_Status); } - return val; } void Pet::fromJson(web::json::value& val) { - - if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); @@ -99,16 +93,14 @@ void Pet::fromJson(web::json::value& val) newItem->fromJson(val[U("category")]); setCategory( newItem ); } - } setName(ModelBase::stringFromJson(val[U("name")])); { m_PhotoUrls.clear(); std::vector jsonArray; - for( auto& item : val[U("photoUrls")].as_array() ) + for( auto& item : val[U("photoUrls")].as_array() ) { m_PhotoUrls.push_back(ModelBase::stringFromJson(item)); - } } { @@ -118,7 +110,6 @@ void Pet::fromJson(web::json::value& val) { for( auto& item : val[U("tags")].as_array() ) { - if(item.is_null()) { m_Tags.push_back( std::shared_ptr(nullptr) ); @@ -129,16 +120,13 @@ void Pet::fromJson(web::json::value& val) newItem->fromJson(item); m_Tags.push_back( newItem ); } - } } } if(val.has_field(U("status"))) { setStatus(ModelBase::stringFromJson(val[U("status")])); - } - } void Pet::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -187,7 +175,6 @@ void Pet::toMultipart(std::shared_ptr multipart, const utilit multipart->add(ModelBase::toHttpContent(namePrefix + U("status"), m_Status)); } - } void Pet::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -210,17 +197,15 @@ void Pet::fromMultiPart(std::shared_ptr multipart, const util newItem->fromMultiPart(multipart, U("category.")); setCategory( newItem ); } - } setName(ModelBase::stringFromHttpContent(multipart->getContent(U("name")))); { m_PhotoUrls.clear(); - + web::json::value jsonArray = web::json::value::parse(ModelBase::stringFromHttpContent(multipart->getContent(U("photoUrls")))); for( auto& item : jsonArray.as_array() ) { m_PhotoUrls.push_back(ModelBase::stringFromJson(item)); - } } { @@ -231,7 +216,6 @@ void Pet::fromMultiPart(std::shared_ptr multipart, const util web::json::value jsonArray = web::json::value::parse(ModelBase::stringFromHttpContent(multipart->getContent(U("tags")))); for( auto& item : jsonArray.as_array() ) { - if(item.is_null()) { m_Tags.push_back( std::shared_ptr(nullptr) ); @@ -242,91 +226,104 @@ void Pet::fromMultiPart(std::shared_ptr multipart, const util newItem->fromJson(item); m_Tags.push_back( newItem ); } - } } } if(multipart->hasContent(U("status"))) { setStatus(ModelBase::stringFromHttpContent(multipart->getContent(U("status")))); - } - } - int64_t Pet::getId() const { return m_Id; } + void Pet::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } + bool Pet::idIsSet() const { return m_IdIsSet; } + void Pet::unsetId() { m_IdIsSet = false; } + std::shared_ptr Pet::getCategory() const { return m_Category; } + void Pet::setCategory(std::shared_ptr value) { m_Category = value; m_CategoryIsSet = true; } + bool Pet::categoryIsSet() const { return m_CategoryIsSet; } + void Pet::unsetCategory() { m_CategoryIsSet = false; } + utility::string_t Pet::getName() const { return m_Name; } + void Pet::setName(utility::string_t value) { m_Name = value; } + std::vector& Pet::getPhotoUrls() { return m_PhotoUrls; } + std::vector>& Pet::getTags() { return m_Tags; } + bool Pet::tagsIsSet() const { return m_TagsIsSet; } + void Pet::unsetTags() { m_TagsIsSet = false; } + utility::string_t Pet::getStatus() const { return m_Status; } + void Pet::setStatus(utility::string_t value) { m_Status = value; m_StatusIsSet = true; } + bool Pet::statusIsSet() const { return m_StatusIsSet; } + void Pet::unsetStatus() { m_StatusIsSet = false; diff --git a/samples/client/petstore/cpprest/model/Tag.cpp b/samples/client/petstore/cpprest/model/Tag.cpp index 8c77f0a4b4a..0b3220e5110 100644 --- a/samples/client/petstore/cpprest/model/Tag.cpp +++ b/samples/client/petstore/cpprest/model/Tag.cpp @@ -25,7 +25,6 @@ Tag::Tag() m_IdIsSet = false; m_Name = U(""); m_NameIsSet = false; - } Tag::~Tag() @@ -39,7 +38,6 @@ void Tag::validate() web::json::value Tag::toJson() const { - web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -50,15 +48,12 @@ web::json::value Tag::toJson() const { val[U("name")] = ModelBase::toJson(m_Name); } - return val; } void Tag::fromJson(web::json::value& val) { - - if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); @@ -66,9 +61,7 @@ void Tag::fromJson(web::json::value& val) if(val.has_field(U("name"))) { setName(ModelBase::stringFromJson(val[U("name")])); - } - } void Tag::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -88,7 +81,6 @@ void Tag::toMultipart(std::shared_ptr multipart, const utilit multipart->add(ModelBase::toHttpContent(namePrefix + U("name"), m_Name)); } - } void Tag::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -106,42 +98,46 @@ void Tag::fromMultiPart(std::shared_ptr multipart, const util if(multipart->hasContent(U("name"))) { setName(ModelBase::stringFromHttpContent(multipart->getContent(U("name")))); - } - } - int64_t Tag::getId() const { return m_Id; } + void Tag::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } + bool Tag::idIsSet() const { return m_IdIsSet; } + void Tag::unsetId() { m_IdIsSet = false; } + utility::string_t Tag::getName() const { return m_Name; } + void Tag::setName(utility::string_t value) { m_Name = value; m_NameIsSet = true; } + bool Tag::nameIsSet() const { return m_NameIsSet; } + void Tag::unsetName() { m_NameIsSet = false; diff --git a/samples/client/petstore/cpprest/model/User.cpp b/samples/client/petstore/cpprest/model/User.cpp index c03ba1ada72..bf40c4741bd 100644 --- a/samples/client/petstore/cpprest/model/User.cpp +++ b/samples/client/petstore/cpprest/model/User.cpp @@ -37,7 +37,6 @@ User::User() m_PhoneIsSet = false; m_UserStatus = 0; m_UserStatusIsSet = false; - } User::~User() @@ -51,7 +50,6 @@ void User::validate() web::json::value User::toJson() const { - web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -86,15 +84,12 @@ web::json::value User::toJson() const { val[U("userStatus")] = ModelBase::toJson(m_UserStatus); } - return val; } void User::fromJson(web::json::value& val) { - - if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); @@ -102,38 +97,31 @@ void User::fromJson(web::json::value& val) if(val.has_field(U("username"))) { setUsername(ModelBase::stringFromJson(val[U("username")])); - } if(val.has_field(U("firstName"))) { setFirstName(ModelBase::stringFromJson(val[U("firstName")])); - } if(val.has_field(U("lastName"))) { setLastName(ModelBase::stringFromJson(val[U("lastName")])); - } if(val.has_field(U("email"))) { setEmail(ModelBase::stringFromJson(val[U("email")])); - } if(val.has_field(U("password"))) { setPassword(ModelBase::stringFromJson(val[U("password")])); - } if(val.has_field(U("phone"))) { setPhone(ModelBase::stringFromJson(val[U("phone")])); - } if(val.has_field(U("userStatus"))) { setUserStatus(ModelBase::int32_tFromJson(val[U("userStatus")])); } - } void User::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -182,7 +170,6 @@ void User::toMultipart(std::shared_ptr multipart, const utili { multipart->add(ModelBase::toHttpContent(namePrefix + U("userStatus"), m_UserStatus)); } - } void User::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) @@ -200,173 +187,196 @@ void User::fromMultiPart(std::shared_ptr multipart, const uti if(multipart->hasContent(U("username"))) { setUsername(ModelBase::stringFromHttpContent(multipart->getContent(U("username")))); - } if(multipart->hasContent(U("firstName"))) { setFirstName(ModelBase::stringFromHttpContent(multipart->getContent(U("firstName")))); - } if(multipart->hasContent(U("lastName"))) { setLastName(ModelBase::stringFromHttpContent(multipart->getContent(U("lastName")))); - } if(multipart->hasContent(U("email"))) { setEmail(ModelBase::stringFromHttpContent(multipart->getContent(U("email")))); - } if(multipart->hasContent(U("password"))) { setPassword(ModelBase::stringFromHttpContent(multipart->getContent(U("password")))); - } if(multipart->hasContent(U("phone"))) { setPhone(ModelBase::stringFromHttpContent(multipart->getContent(U("phone")))); - } if(multipart->hasContent(U("userStatus"))) { setUserStatus(ModelBase::int32_tFromHttpContent(multipart->getContent(U("userStatus")))); } - } - int64_t User::getId() const { return m_Id; } + void User::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } + bool User::idIsSet() const { return m_IdIsSet; } + void User::unsetId() { m_IdIsSet = false; } + utility::string_t User::getUsername() const { return m_Username; } + void User::setUsername(utility::string_t value) { m_Username = value; m_UsernameIsSet = true; } + bool User::usernameIsSet() const { return m_UsernameIsSet; } + void User::unsetUsername() { m_UsernameIsSet = false; } + utility::string_t User::getFirstName() const { return m_FirstName; } + void User::setFirstName(utility::string_t value) { m_FirstName = value; m_FirstNameIsSet = true; } + bool User::firstNameIsSet() const { return m_FirstNameIsSet; } + void User::unsetFirstName() { m_FirstNameIsSet = false; } + utility::string_t User::getLastName() const { return m_LastName; } + void User::setLastName(utility::string_t value) { m_LastName = value; m_LastNameIsSet = true; } + bool User::lastNameIsSet() const { return m_LastNameIsSet; } + void User::unsetLastName() { m_LastNameIsSet = false; } + utility::string_t User::getEmail() const { return m_Email; } + void User::setEmail(utility::string_t value) { m_Email = value; m_EmailIsSet = true; } + bool User::emailIsSet() const { return m_EmailIsSet; } + void User::unsetEmail() { m_EmailIsSet = false; } + utility::string_t User::getPassword() const { return m_Password; } + void User::setPassword(utility::string_t value) { m_Password = value; m_PasswordIsSet = true; } + bool User::passwordIsSet() const { return m_PasswordIsSet; } + void User::unsetPassword() { m_PasswordIsSet = false; } + utility::string_t User::getPhone() const { return m_Phone; } + void User::setPhone(utility::string_t value) { m_Phone = value; m_PhoneIsSet = true; } + bool User::phoneIsSet() const { return m_PhoneIsSet; } + void User::unsetPhone() { m_PhoneIsSet = false; } + int32_t User::getUserStatus() const { return m_UserStatus; } + void User::setUserStatus(int32_t value) { m_UserStatus = value; m_UserStatusIsSet = true; } + bool User::userStatusIsSet() const { return m_UserStatusIsSet; } + void User::unsetUserStatus() { m_UserStatusIsSet = false; From 3a3285779064fd60f2fe2438eb2f86171cdc1a33 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 19 Jun 2017 11:19:21 +0800 Subject: [PATCH 08/33] PR to roll back #5569 (#5868) --- .../languages/TypeScriptAngular2ClientCodegen.java | 12 ------------ .../main/resources/typescript-angular2/api.mustache | 4 ++-- .../resources/typescript-angular2/variables.mustache | 6 +++--- .../TypeScriptAngular2ClientOptionsProvider.java | 1 - .../typescript-angular2/default/variables.ts | 6 +++--- .../petstore/typescript-angular2/npm/variables.ts | 6 +++--- .../typescript-angular2/with-interfaces/variables.ts | 6 +++--- 7 files changed, 14 insertions(+), 27 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java index afcf3bdaadc..8fe2e2d849b 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java @@ -26,14 +26,11 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod public static final String NPM_VERSION = "npmVersion"; public static final String NPM_REPOSITORY = "npmRepository"; public static final String SNAPSHOT = "snapshot"; - public static final String USE_OPAQUE_TOKEN = "useOpaqueToken"; - public static final String INJECTION_TOKEN = "injectionToken"; public static final String WITH_INTERFACES = "withInterfaces"; protected String npmName = null; protected String npmVersion = "1.0.0"; protected String npmRepository = null; - protected String injectionToken = "InjectionToken"; public TypeScriptAngular2ClientCodegen() { super(); @@ -51,7 +48,6 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod this.cliOptions.add(new CliOption(NPM_VERSION, "The version of your npm package")); this.cliOptions.add(new CliOption(NPM_REPOSITORY, "Use this property to set an url your private npmRepo in the package.json")); this.cliOptions.add(new CliOption(SNAPSHOT, "When setting this property to true the version will be suffixed with -SNAPSHOT.yyyyMMddHHmm", BooleanProperty.TYPE).defaultValue(Boolean.FALSE.toString())); - this.cliOptions.add(new CliOption(USE_OPAQUE_TOKEN, "When setting this property to true, OpaqueToken is used instead of InjectionToken", BooleanProperty.TYPE).defaultValue(Boolean.FALSE.toString())); this.cliOptions.add(new CliOption(WITH_INTERFACES, "Setting this property to true will generate interfaces next to the default class implementations.", BooleanProperty.TYPE).defaultValue(Boolean.FALSE.toString())); } @@ -86,11 +82,6 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod addNpmPackageGeneration(); } - if(additionalProperties.containsKey(USE_OPAQUE_TOKEN) && Boolean.valueOf(additionalProperties.get(USE_OPAQUE_TOKEN).toString())) { - this.setOpaqueToken(); - } - additionalProperties.put(INJECTION_TOKEN, this.injectionToken); - if(additionalProperties.containsKey(WITH_INTERFACES)) { boolean withInterfaces = Boolean.parseBoolean(additionalProperties.get(WITH_INTERFACES).toString()); if (withInterfaces) { @@ -253,7 +244,4 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod this.npmRepository = npmRepository; } - public void setOpaqueToken() { - this.injectionToken = "OpaqueToken"; - } } diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache index 2f3b55bbccf..eac59ada743 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache @@ -133,14 +133,14 @@ export class {{classname}} { // to determine the Content-Type header let consumes: string[] = [ {{#consumes}} - '{{{mediaType}}}'{{#hasMore}}, {{/hasMore}} + '{{{mediaType}}}'{{#hasMore}},{{/hasMore}} {{/consumes}} ]; // to determine the Accept header let produces: string[] = [ {{#produces}} - '{{{mediaType}}}'{{#hasMore}}, {{/hasMore}} + '{{{mediaType}}}'{{#hasMore}},{{/hasMore}} {{/produces}} ]; diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/variables.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/variables.mustache index f5cdcf76e94..29b7e5b1d71 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/variables.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/variables.mustache @@ -1,9 +1,9 @@ -import { {{{injectionToken}}} } from '@angular/core'; +import { OpaqueToken } from '@angular/core'; -export const BASE_PATH = new {{{injectionToken}}}('basePath'); +export const BASE_PATH = new OpaqueToken('basePath'); export const COLLECTION_FORMATS = { 'csv': ',', 'tsv': ' ', 'ssv': ' ', 'pipes': '|' -} \ No newline at end of file +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/TypeScriptAngular2ClientOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/TypeScriptAngular2ClientOptionsProvider.java index f7d430c1f4c..fd5961b99bd 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/TypeScriptAngular2ClientOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/TypeScriptAngular2ClientOptionsProvider.java @@ -36,7 +36,6 @@ public class TypeScriptAngular2ClientOptionsProvider implements OptionsProvider .put(TypeScriptAngular2ClientCodegen.WITH_INTERFACES, Boolean.FALSE.toString()) .put(TypeScriptAngular2ClientCodegen.NPM_REPOSITORY, NPM_REPOSITORY) .put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE) - .put(TypeScriptAngular2ClientCodegen.USE_OPAQUE_TOKEN, Boolean.FALSE.toString()) .build(); } diff --git a/samples/client/petstore/typescript-angular2/default/variables.ts b/samples/client/petstore/typescript-angular2/default/variables.ts index b734b2e5918..29b7e5b1d71 100644 --- a/samples/client/petstore/typescript-angular2/default/variables.ts +++ b/samples/client/petstore/typescript-angular2/default/variables.ts @@ -1,9 +1,9 @@ -import { InjectionToken } from '@angular/core'; +import { OpaqueToken } from '@angular/core'; -export const BASE_PATH = new InjectionToken('basePath'); +export const BASE_PATH = new OpaqueToken('basePath'); export const COLLECTION_FORMATS = { 'csv': ',', 'tsv': ' ', 'ssv': ' ', 'pipes': '|' -} \ No newline at end of file +} diff --git a/samples/client/petstore/typescript-angular2/npm/variables.ts b/samples/client/petstore/typescript-angular2/npm/variables.ts index b734b2e5918..29b7e5b1d71 100644 --- a/samples/client/petstore/typescript-angular2/npm/variables.ts +++ b/samples/client/petstore/typescript-angular2/npm/variables.ts @@ -1,9 +1,9 @@ -import { InjectionToken } from '@angular/core'; +import { OpaqueToken } from '@angular/core'; -export const BASE_PATH = new InjectionToken('basePath'); +export const BASE_PATH = new OpaqueToken('basePath'); export const COLLECTION_FORMATS = { 'csv': ',', 'tsv': ' ', 'ssv': ' ', 'pipes': '|' -} \ No newline at end of file +} diff --git a/samples/client/petstore/typescript-angular2/with-interfaces/variables.ts b/samples/client/petstore/typescript-angular2/with-interfaces/variables.ts index b734b2e5918..29b7e5b1d71 100644 --- a/samples/client/petstore/typescript-angular2/with-interfaces/variables.ts +++ b/samples/client/petstore/typescript-angular2/with-interfaces/variables.ts @@ -1,9 +1,9 @@ -import { InjectionToken } from '@angular/core'; +import { OpaqueToken } from '@angular/core'; -export const BASE_PATH = new InjectionToken('basePath'); +export const BASE_PATH = new OpaqueToken('basePath'); export const COLLECTION_FORMATS = { 'csv': ',', 'tsv': ' ', 'ssv': ' ', 'pipes': '|' -} \ No newline at end of file +} From 981ad60050a8e175dd9242c9367ea2fb571c1e64 Mon Sep 17 00:00:00 2001 From: stkrwork Date: Mon, 19 Jun 2017 16:56:01 +0200 Subject: [PATCH 09/33] [C++] [Restbed] Reworked the model template for restbed to create generic models (#5873) * - Added Restbed Generator * - Added Json processing functions to model - Removed unnused code from restbed codegen class - Added response header processing to api template * Changed it to respect alphabetical order * Made the string joining java 7 compatible * Added samples * - Reworked the getter setter generation --- .../src/main/resources/restbed/model-header.mustache | 4 +--- .../src/main/resources/restbed/model-source.mustache | 8 ++------ samples/server/petstore/restbed/model/Pet.cpp | 12 ++++++++++-- samples/server/petstore/restbed/model/Pet.h | 10 ++++++---- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/restbed/model-header.mustache b/modules/swagger-codegen/src/main/resources/restbed/model-header.mustache index 634472e9a3a..30f586fb5e8 100644 --- a/modules/swagger-codegen/src/main/resources/restbed/model-header.mustache +++ b/modules/swagger-codegen/src/main/resources/restbed/model-header.mustache @@ -37,10 +37,8 @@ public: /// /// {{description}} /// - {{^isNotContainer}}{{{datatype}}}& {{getter}}(); - {{/isNotContainer}}{{#isNotContainer}}{{{datatype}}} {{getter}}() const; + {{{datatype}}} {{getter}}() const; void {{setter}}({{{datatype}}} value); - {{/isNotContainer}} {{/vars}} protected: diff --git a/modules/swagger-codegen/src/main/resources/restbed/model-source.mustache b/modules/swagger-codegen/src/main/resources/restbed/model-source.mustache index c93f8d79321..ea2f969c189 100644 --- a/modules/swagger-codegen/src/main/resources/restbed/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/restbed/model-source.mustache @@ -73,11 +73,8 @@ void {{classname}}::fromJsonString(std::string const& jsonString) {{/vars}} } -{{#vars}}{{^isNotContainer}}{{{datatype}}}& {{classname}}::{{getter}}() -{ - return m_{{name}}; -} -{{/isNotContainer}}{{#isNotContainer}}{{{datatype}}} {{classname}}::{{getter}}() const +{{#vars}} +{{{datatype}}} {{classname}}::{{getter}}() const { return m_{{name}}; } @@ -85,7 +82,6 @@ void {{classname}}::{{setter}}({{{datatype}}} value) { m_{{name}} = value; } -{{/isNotContainer}} {{/vars}} {{#modelNamespaceDeclarations}} diff --git a/samples/server/petstore/restbed/model/Pet.cpp b/samples/server/petstore/restbed/model/Pet.cpp index f047b8a883c..1889dc891a8 100644 --- a/samples/server/petstore/restbed/model/Pet.cpp +++ b/samples/server/petstore/restbed/model/Pet.cpp @@ -85,14 +85,22 @@ void Pet::setName(std::string value) { m_Name = value; } -std::vector& Pet::getPhotoUrls() +std::vector Pet::getPhotoUrls() const { return m_PhotoUrls; } -std::vector>& Pet::getTags() +void Pet::setPhotoUrls(std::vector value) +{ + m_PhotoUrls = value; +} +std::vector> Pet::getTags() const { return m_Tags; } +void Pet::setTags(std::vector> value) +{ + m_Tags = value; +} std::string Pet::getStatus() const { return m_Status; diff --git a/samples/server/petstore/restbed/model/Pet.h b/samples/server/petstore/restbed/model/Pet.h index 73234cfe145..88d223a4c3f 100644 --- a/samples/server/petstore/restbed/model/Pet.h +++ b/samples/server/petstore/restbed/model/Pet.h @@ -65,12 +65,14 @@ public: /// /// /// - std::vector& getPhotoUrls(); - /// + std::vector getPhotoUrls() const; + void setPhotoUrls(std::vector value); + /// /// /// - std::vector>& getTags(); - /// + std::vector> getTags() const; + void setTags(std::vector> value); + /// /// pet status in the store /// std::string getStatus() const; From 24c55d1f0edce4284fe793deae61a428cf43a06b Mon Sep 17 00:00:00 2001 From: sabras75 Date: Mon, 19 Jun 2017 17:08:32 +0200 Subject: [PATCH 10/33] Fix#5856 - Add support for PATCH (#5875) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Changing QBuffer to use a QByteArray solves the issue for me since there is no real use-case for using a QBuffer. Documentation of QT5 states: QBuffer::QBuffer(QByteArray *byteArray, QObject *parent = Q_NULLPTR) Constructs a QBuffer that uses the QByteArray pointed to by byteArray as its internal buffer, and with the given parent. The caller is responsible for ensuring that byteArray remains valid until the QBuffer is destroyed, or until setBuffer() is called to change the buffer. QBuffer doesn't take ownership of the QByteArray. Since the variable “request_content” is allocated on the stack, this is clearly wrong and a bug. The construction of QBuffer is designed this way so that whenever you write to the buffer, it is also written to the byte array that it is pointing to * Add a retro-compatible solution based on QNetworkAccessManager SourceCode * update samples --- .../main/resources/qt5cpp/HttpRequest.cpp.mustache | 13 +++++++++++-- .../qt5cpp/client/SWGHttpRequest.cpp | 13 +++++++++++-- .../petstore/qt5cpp/client/SWGHttpRequest.cpp | 13 +++++++++++-- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/qt5cpp/HttpRequest.cpp.mustache b/modules/swagger-codegen/src/main/resources/qt5cpp/HttpRequest.cpp.mustache index 3efdde28cc3..998defc4828 100644 --- a/modules/swagger-codegen/src/main/resources/qt5cpp/HttpRequest.cpp.mustache +++ b/modules/swagger-codegen/src/main/resources/qt5cpp/HttpRequest.cpp.mustache @@ -4,6 +4,7 @@ #include #include #include +#include {{#cppNamespaceDeclarations}} @@ -283,8 +284,16 @@ void HttpRequestWorker::execute(HttpRequestInput *input) { manager->deleteResource(request); } else { - QBuffer buff(&request_content); - manager->sendCustomRequest(request, input->http_method.toLatin1(), &buff); +#if (QT_VERSION >= 0x050800) + manager->sendCustomRequest(request, input->http_method.toLatin1(), request_content); +#else + QBuffer *buffer = new QBuffer; + buffer->setData(request_content); + buffer->open(QIODevice::ReadOnly); + + QNetworkReply* reply = manager->sendCustomRequest(request, input->http_method.toLatin1(), buffer); + buffer->setParent(reply); +#endif } } diff --git a/samples/client/petstore-security-test/qt5cpp/client/SWGHttpRequest.cpp b/samples/client/petstore-security-test/qt5cpp/client/SWGHttpRequest.cpp index 589921db798..2300fb2753b 100644 --- a/samples/client/petstore-security-test/qt5cpp/client/SWGHttpRequest.cpp +++ b/samples/client/petstore-security-test/qt5cpp/client/SWGHttpRequest.cpp @@ -15,6 +15,7 @@ #include #include #include +#include namespace Swagger { @@ -292,8 +293,16 @@ void HttpRequestWorker::execute(HttpRequestInput *input) { manager->deleteResource(request); } else { - QBuffer buff(&request_content); - manager->sendCustomRequest(request, input->http_method.toLatin1(), &buff); +#if (QT_VERSION >= 0x050800) + manager->sendCustomRequest(request, input->http_method.toLatin1(), request_content); +#else + QBuffer *buffer = new QBuffer; + buffer->setData(request_content); + buffer->open(QIODevice::ReadOnly); + + QNetworkReply* reply = manager->sendCustomRequest(request, input->http_method.toLatin1(), buffer); + buffer->setParent(reply); +#endif } } diff --git a/samples/client/petstore/qt5cpp/client/SWGHttpRequest.cpp b/samples/client/petstore/qt5cpp/client/SWGHttpRequest.cpp index fa57cc9c8a9..01e05241bda 100644 --- a/samples/client/petstore/qt5cpp/client/SWGHttpRequest.cpp +++ b/samples/client/petstore/qt5cpp/client/SWGHttpRequest.cpp @@ -15,6 +15,7 @@ #include #include #include +#include namespace Swagger { @@ -292,8 +293,16 @@ void HttpRequestWorker::execute(HttpRequestInput *input) { manager->deleteResource(request); } else { - QBuffer buff(&request_content); - manager->sendCustomRequest(request, input->http_method.toLatin1(), &buff); +#if (QT_VERSION >= 0x050800) + manager->sendCustomRequest(request, input->http_method.toLatin1(), request_content); +#else + QBuffer *buffer = new QBuffer; + buffer->setData(request_content); + buffer->open(QIODevice::ReadOnly); + + QNetworkReply* reply = manager->sendCustomRequest(request, input->http_method.toLatin1(), buffer); + buffer->setParent(reply); +#endif } } From 8ab2b84c972c47770a14152b4e629c9c9b5b2416 Mon Sep 17 00:00:00 2001 From: stkrwork Date: Mon, 19 Jun 2017 19:29:42 +0200 Subject: [PATCH 11/33] [CPP] [CPPREST] first steps on fixing the template (#5877) * - Added Restbed Generator * - Added Json processing functions to model - Removed unnused code from restbed codegen class - Added response header processing to api template * Changed it to respect alphabetical order * Made the string joining java 7 compatible * Added samples * First step in fixing the cpp rest template regenerated new samples TODO: Fix the other functions * Updated samples --- .../resources/cpprest/model-header.mustache | 2 +- .../resources/cpprest/model-source.mustache | 7 ++++++- .../petstore/cpprest/model/ApiResponse.cpp | 6 +++--- .../petstore/cpprest/model/ApiResponse.h | 6 +++--- .../client/petstore/cpprest/model/Category.cpp | 4 ++-- .../client/petstore/cpprest/model/Category.h | 4 ++-- .../client/petstore/cpprest/model/Order.cpp | 12 ++++++------ samples/client/petstore/cpprest/model/Order.h | 12 ++++++------ samples/client/petstore/cpprest/model/Pet.cpp | 18 ++++++++++++++---- samples/client/petstore/cpprest/model/Pet.h | 14 ++++++++------ samples/client/petstore/cpprest/model/Tag.cpp | 4 ++-- samples/client/petstore/cpprest/model/Tag.h | 4 ++-- samples/client/petstore/cpprest/model/User.cpp | 16 ++++++++-------- samples/client/petstore/cpprest/model/User.h | 16 ++++++++-------- 14 files changed, 71 insertions(+), 54 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-header.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-header.mustache index c32084eebc2..aefcec63437 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-header.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-header.mustache @@ -51,10 +51,10 @@ public: /// {{^isNotContainer}}{{{datatype}}}& {{getter}}(); {{/isNotContainer}}{{#isNotContainer}}{{{datatype}}} {{getter}}() const; - void {{setter}}({{{datatype}}} value); {{/isNotContainer}}{{^required}}bool {{baseName}}IsSet() const; void unset{{name}}(); {{/required}} + void {{setter}}({{{datatype}}} value); {{/isInherited}} {{/vars}} diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache index 1830651b368..6d4a18bf2f0 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache @@ -408,6 +408,11 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, return m_{{name}}; } +void {{classname}}::{{setter}}({{{datatype}}} value) +{ + m_{{name}} = value; + {{^required}}m_{{name}}IsSet = true;{{/required}} +} {{/isNotContainer}} {{#isNotContainer}} {{{datatype}}} {{classname}}::{{getter}}() const @@ -415,12 +420,12 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, return m_{{name}}; } + void {{classname}}::{{setter}}({{{datatype}}} value) { m_{{name}} = value; {{^required}}m_{{name}}IsSet = true;{{/required}} } - {{/isNotContainer}} {{^required}} bool {{classname}}::{{baseName}}IsSet() const diff --git a/samples/client/petstore/cpprest/model/ApiResponse.cpp b/samples/client/petstore/cpprest/model/ApiResponse.cpp index 255660cf02b..d2f4238deeb 100644 --- a/samples/client/petstore/cpprest/model/ApiResponse.cpp +++ b/samples/client/petstore/cpprest/model/ApiResponse.cpp @@ -125,12 +125,12 @@ int32_t ApiResponse::getCode() const return m_Code; } + void ApiResponse::setCode(int32_t value) { m_Code = value; m_CodeIsSet = true; } - bool ApiResponse::codeIsSet() const { return m_CodeIsSet; @@ -146,12 +146,12 @@ utility::string_t ApiResponse::getType() const return m_Type; } + void ApiResponse::setType(utility::string_t value) { m_Type = value; m_TypeIsSet = true; } - bool ApiResponse::typeIsSet() const { return m_TypeIsSet; @@ -167,12 +167,12 @@ utility::string_t ApiResponse::getMessage() const return m_Message; } + void ApiResponse::setMessage(utility::string_t value) { m_Message = value; m_MessageIsSet = true; } - bool ApiResponse::messageIsSet() const { return m_MessageIsSet; diff --git a/samples/client/petstore/cpprest/model/ApiResponse.h b/samples/client/petstore/cpprest/model/ApiResponse.h index 1f8e7feb2bc..ec0a3a1b012 100644 --- a/samples/client/petstore/cpprest/model/ApiResponse.h +++ b/samples/client/petstore/cpprest/model/ApiResponse.h @@ -57,23 +57,23 @@ public: /// /// int32_t getCode() const; - void setCode(int32_t value); bool codeIsSet() const; void unsetCode(); + void setCode(int32_t value); /// /// /// utility::string_t getType() const; - void setType(utility::string_t value); bool typeIsSet() const; void unsetType(); + void setType(utility::string_t value); /// /// /// utility::string_t getMessage() const; - void setMessage(utility::string_t value); bool messageIsSet() const; void unsetMessage(); + void setMessage(utility::string_t value); protected: int32_t m_Code; diff --git a/samples/client/petstore/cpprest/model/Category.cpp b/samples/client/petstore/cpprest/model/Category.cpp index 19e14171b7a..4d185607149 100644 --- a/samples/client/petstore/cpprest/model/Category.cpp +++ b/samples/client/petstore/cpprest/model/Category.cpp @@ -106,12 +106,12 @@ int64_t Category::getId() const return m_Id; } + void Category::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } - bool Category::idIsSet() const { return m_IdIsSet; @@ -127,12 +127,12 @@ utility::string_t Category::getName() const return m_Name; } + void Category::setName(utility::string_t value) { m_Name = value; m_NameIsSet = true; } - bool Category::nameIsSet() const { return m_NameIsSet; diff --git a/samples/client/petstore/cpprest/model/Category.h b/samples/client/petstore/cpprest/model/Category.h index 88cc7148202..860918c0822 100644 --- a/samples/client/petstore/cpprest/model/Category.h +++ b/samples/client/petstore/cpprest/model/Category.h @@ -57,16 +57,16 @@ public: /// /// int64_t getId() const; - void setId(int64_t value); bool idIsSet() const; void unsetId(); + void setId(int64_t value); /// /// /// utility::string_t getName() const; - void setName(utility::string_t value); bool nameIsSet() const; void unsetName(); + void setName(utility::string_t value); protected: int64_t m_Id; diff --git a/samples/client/petstore/cpprest/model/Order.cpp b/samples/client/petstore/cpprest/model/Order.cpp index f9ed1375ece..b205701b76f 100644 --- a/samples/client/petstore/cpprest/model/Order.cpp +++ b/samples/client/petstore/cpprest/model/Order.cpp @@ -179,12 +179,12 @@ int64_t Order::getId() const return m_Id; } + void Order::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } - bool Order::idIsSet() const { return m_IdIsSet; @@ -200,12 +200,12 @@ int64_t Order::getPetId() const return m_PetId; } + void Order::setPetId(int64_t value) { m_PetId = value; m_PetIdIsSet = true; } - bool Order::petIdIsSet() const { return m_PetIdIsSet; @@ -221,12 +221,12 @@ int32_t Order::getQuantity() const return m_Quantity; } + void Order::setQuantity(int32_t value) { m_Quantity = value; m_QuantityIsSet = true; } - bool Order::quantityIsSet() const { return m_QuantityIsSet; @@ -242,12 +242,12 @@ utility::datetime Order::getShipDate() const return m_ShipDate; } + void Order::setShipDate(utility::datetime value) { m_ShipDate = value; m_ShipDateIsSet = true; } - bool Order::shipDateIsSet() const { return m_ShipDateIsSet; @@ -263,12 +263,12 @@ utility::string_t Order::getStatus() const return m_Status; } + void Order::setStatus(utility::string_t value) { m_Status = value; m_StatusIsSet = true; } - bool Order::statusIsSet() const { return m_StatusIsSet; @@ -284,12 +284,12 @@ bool Order::getComplete() const return m_Complete; } + void Order::setComplete(bool value) { m_Complete = value; m_CompleteIsSet = true; } - bool Order::completeIsSet() const { return m_CompleteIsSet; diff --git a/samples/client/petstore/cpprest/model/Order.h b/samples/client/petstore/cpprest/model/Order.h index bd838e920e7..da065593b84 100644 --- a/samples/client/petstore/cpprest/model/Order.h +++ b/samples/client/petstore/cpprest/model/Order.h @@ -57,44 +57,44 @@ public: /// /// int64_t getId() const; - void setId(int64_t value); bool idIsSet() const; void unsetId(); + void setId(int64_t value); /// /// /// int64_t getPetId() const; - void setPetId(int64_t value); bool petIdIsSet() const; void unsetPetId(); + void setPetId(int64_t value); /// /// /// int32_t getQuantity() const; - void setQuantity(int32_t value); bool quantityIsSet() const; void unsetQuantity(); + void setQuantity(int32_t value); /// /// /// utility::datetime getShipDate() const; - void setShipDate(utility::datetime value); bool shipDateIsSet() const; void unsetShipDate(); + void setShipDate(utility::datetime value); /// /// Order Status /// utility::string_t getStatus() const; - void setStatus(utility::string_t value); bool statusIsSet() const; void unsetStatus(); + void setStatus(utility::string_t value); /// /// /// bool getComplete() const; - void setComplete(bool value); bool completeIsSet() const; void unsetComplete(); + void setComplete(bool value); protected: int64_t m_Id; diff --git a/samples/client/petstore/cpprest/model/Pet.cpp b/samples/client/petstore/cpprest/model/Pet.cpp index a59a8da759e..5d8a4bb9725 100644 --- a/samples/client/petstore/cpprest/model/Pet.cpp +++ b/samples/client/petstore/cpprest/model/Pet.cpp @@ -240,12 +240,12 @@ int64_t Pet::getId() const return m_Id; } + void Pet::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } - bool Pet::idIsSet() const { return m_IdIsSet; @@ -261,12 +261,12 @@ std::shared_ptr Pet::getCategory() const return m_Category; } + void Pet::setCategory(std::shared_ptr value) { m_Category = value; m_CategoryIsSet = true; } - bool Pet::categoryIsSet() const { return m_CategoryIsSet; @@ -282,22 +282,32 @@ utility::string_t Pet::getName() const return m_Name; } + void Pet::setName(utility::string_t value) { m_Name = value; } - std::vector& Pet::getPhotoUrls() { return m_PhotoUrls; } +void Pet::setPhotoUrls(std::vector value) +{ + m_PhotoUrls = value; + +} std::vector>& Pet::getTags() { return m_Tags; } +void Pet::setTags(std::vector> value) +{ + m_Tags = value; + m_TagsIsSet = true; +} bool Pet::tagsIsSet() const { return m_TagsIsSet; @@ -313,12 +323,12 @@ utility::string_t Pet::getStatus() const return m_Status; } + void Pet::setStatus(utility::string_t value) { m_Status = value; m_StatusIsSet = true; } - bool Pet::statusIsSet() const { return m_StatusIsSet; diff --git a/samples/client/petstore/cpprest/model/Pet.h b/samples/client/petstore/cpprest/model/Pet.h index 403db5b0236..61ae8b92f17 100644 --- a/samples/client/petstore/cpprest/model/Pet.h +++ b/samples/client/petstore/cpprest/model/Pet.h @@ -60,38 +60,40 @@ public: /// /// int64_t getId() const; - void setId(int64_t value); bool idIsSet() const; void unsetId(); + void setId(int64_t value); /// /// /// std::shared_ptr getCategory() const; - void setCategory(std::shared_ptr value); bool categoryIsSet() const; void unsetCategory(); + void setCategory(std::shared_ptr value); /// /// /// utility::string_t getName() const; - void setName(utility::string_t value); - /// + void setName(utility::string_t value); + /// /// /// std::vector& getPhotoUrls(); - /// + void setPhotoUrls(std::vector value); + /// /// /// std::vector>& getTags(); bool tagsIsSet() const; void unsetTags(); + void setTags(std::vector> value); /// /// pet status in the store /// utility::string_t getStatus() const; - void setStatus(utility::string_t value); bool statusIsSet() const; void unsetStatus(); + void setStatus(utility::string_t value); protected: int64_t m_Id; diff --git a/samples/client/petstore/cpprest/model/Tag.cpp b/samples/client/petstore/cpprest/model/Tag.cpp index 0b3220e5110..6d5e350ab91 100644 --- a/samples/client/petstore/cpprest/model/Tag.cpp +++ b/samples/client/petstore/cpprest/model/Tag.cpp @@ -106,12 +106,12 @@ int64_t Tag::getId() const return m_Id; } + void Tag::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } - bool Tag::idIsSet() const { return m_IdIsSet; @@ -127,12 +127,12 @@ utility::string_t Tag::getName() const return m_Name; } + void Tag::setName(utility::string_t value) { m_Name = value; m_NameIsSet = true; } - bool Tag::nameIsSet() const { return m_NameIsSet; diff --git a/samples/client/petstore/cpprest/model/Tag.h b/samples/client/petstore/cpprest/model/Tag.h index 311a05461c2..30159052950 100644 --- a/samples/client/petstore/cpprest/model/Tag.h +++ b/samples/client/petstore/cpprest/model/Tag.h @@ -57,16 +57,16 @@ public: /// /// int64_t getId() const; - void setId(int64_t value); bool idIsSet() const; void unsetId(); + void setId(int64_t value); /// /// /// utility::string_t getName() const; - void setName(utility::string_t value); bool nameIsSet() const; void unsetName(); + void setName(utility::string_t value); protected: int64_t m_Id; diff --git a/samples/client/petstore/cpprest/model/User.cpp b/samples/client/petstore/cpprest/model/User.cpp index bf40c4741bd..3cf4e4258d5 100644 --- a/samples/client/petstore/cpprest/model/User.cpp +++ b/samples/client/petstore/cpprest/model/User.cpp @@ -219,12 +219,12 @@ int64_t User::getId() const return m_Id; } + void User::setId(int64_t value) { m_Id = value; m_IdIsSet = true; } - bool User::idIsSet() const { return m_IdIsSet; @@ -240,12 +240,12 @@ utility::string_t User::getUsername() const return m_Username; } + void User::setUsername(utility::string_t value) { m_Username = value; m_UsernameIsSet = true; } - bool User::usernameIsSet() const { return m_UsernameIsSet; @@ -261,12 +261,12 @@ utility::string_t User::getFirstName() const return m_FirstName; } + void User::setFirstName(utility::string_t value) { m_FirstName = value; m_FirstNameIsSet = true; } - bool User::firstNameIsSet() const { return m_FirstNameIsSet; @@ -282,12 +282,12 @@ utility::string_t User::getLastName() const return m_LastName; } + void User::setLastName(utility::string_t value) { m_LastName = value; m_LastNameIsSet = true; } - bool User::lastNameIsSet() const { return m_LastNameIsSet; @@ -303,12 +303,12 @@ utility::string_t User::getEmail() const return m_Email; } + void User::setEmail(utility::string_t value) { m_Email = value; m_EmailIsSet = true; } - bool User::emailIsSet() const { return m_EmailIsSet; @@ -324,12 +324,12 @@ utility::string_t User::getPassword() const return m_Password; } + void User::setPassword(utility::string_t value) { m_Password = value; m_PasswordIsSet = true; } - bool User::passwordIsSet() const { return m_PasswordIsSet; @@ -345,12 +345,12 @@ utility::string_t User::getPhone() const return m_Phone; } + void User::setPhone(utility::string_t value) { m_Phone = value; m_PhoneIsSet = true; } - bool User::phoneIsSet() const { return m_PhoneIsSet; @@ -366,12 +366,12 @@ int32_t User::getUserStatus() const return m_UserStatus; } + void User::setUserStatus(int32_t value) { m_UserStatus = value; m_UserStatusIsSet = true; } - bool User::userStatusIsSet() const { return m_UserStatusIsSet; diff --git a/samples/client/petstore/cpprest/model/User.h b/samples/client/petstore/cpprest/model/User.h index c3c0ee8aeea..3ecd51ce96d 100644 --- a/samples/client/petstore/cpprest/model/User.h +++ b/samples/client/petstore/cpprest/model/User.h @@ -57,58 +57,58 @@ public: /// /// int64_t getId() const; - void setId(int64_t value); bool idIsSet() const; void unsetId(); + void setId(int64_t value); /// /// /// utility::string_t getUsername() const; - void setUsername(utility::string_t value); bool usernameIsSet() const; void unsetUsername(); + void setUsername(utility::string_t value); /// /// /// utility::string_t getFirstName() const; - void setFirstName(utility::string_t value); bool firstNameIsSet() const; void unsetFirstName(); + void setFirstName(utility::string_t value); /// /// /// utility::string_t getLastName() const; - void setLastName(utility::string_t value); bool lastNameIsSet() const; void unsetLastName(); + void setLastName(utility::string_t value); /// /// /// utility::string_t getEmail() const; - void setEmail(utility::string_t value); bool emailIsSet() const; void unsetEmail(); + void setEmail(utility::string_t value); /// /// /// utility::string_t getPassword() const; - void setPassword(utility::string_t value); bool passwordIsSet() const; void unsetPassword(); + void setPassword(utility::string_t value); /// /// /// utility::string_t getPhone() const; - void setPhone(utility::string_t value); bool phoneIsSet() const; void unsetPhone(); + void setPhone(utility::string_t value); /// /// User Status /// int32_t getUserStatus() const; - void setUserStatus(int32_t value); bool userStatusIsSet() const; void unsetUserStatus(); + void setUserStatus(int32_t value); protected: int64_t m_Id; From 3546361b33800408c7b7a27ca825cdbdf1d42067 Mon Sep 17 00:00:00 2001 From: Vlad Frolov Date: Tue, 20 Jun 2017 11:25:06 +0300 Subject: [PATCH 12/33] [JavaScript] Added README section for Webpack configuration (howto disable AMD) (#3466) (#5872) --- .../main/resources/Javascript/README.mustache | 18 ++++++++++++++++++ .../resources/Javascript/es6/README.mustache | 18 ++++++++++++++++++ .../client/petstore/javascript-es6/README.md | 18 ++++++++++++++++++ .../petstore/javascript-promise-es6/README.md | 18 ++++++++++++++++++ .../petstore/javascript-promise/README.md | 18 ++++++++++++++++++ samples/client/petstore/javascript/README.md | 18 ++++++++++++++++++ 6 files changed, 108 insertions(+) diff --git a/modules/swagger-codegen/src/main/resources/Javascript/README.mustache b/modules/swagger-codegen/src/main/resources/Javascript/README.mustache index 9bbf4b4f43a..c13314a8960 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/README.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/README.mustache @@ -53,6 +53,24 @@ browserify main.js > bundle.js Then include *bundle.js* in the HTML pages. +### Webpack Configuration + +Using Webpack you may encounter the following error: "Module not found: Error: +Cannot resolve module", most certainly you should disable AMD loader. Add/merge +the following section to your webpack config: + +```javascript +module: { + rules: [ + { + parser: { + amd: false + } + } + ] +} +``` + ## Getting Started Please follow the [installation](#installation) instruction and execute the following JS code: diff --git a/modules/swagger-codegen/src/main/resources/Javascript/es6/README.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/README.mustache index 9bbf4b4f43a..c13314a8960 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/es6/README.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/es6/README.mustache @@ -53,6 +53,24 @@ browserify main.js > bundle.js Then include *bundle.js* in the HTML pages. +### Webpack Configuration + +Using Webpack you may encounter the following error: "Module not found: Error: +Cannot resolve module", most certainly you should disable AMD loader. Add/merge +the following section to your webpack config: + +```javascript +module: { + rules: [ + { + parser: { + amd: false + } + } + ] +} +``` + ## Getting Started Please follow the [installation](#installation) instruction and execute the following JS code: diff --git a/samples/client/petstore/javascript-es6/README.md b/samples/client/petstore/javascript-es6/README.md index 740edf8857d..a58e731b223 100644 --- a/samples/client/petstore/javascript-es6/README.md +++ b/samples/client/petstore/javascript-es6/README.md @@ -45,6 +45,24 @@ browserify main.js > bundle.js Then include *bundle.js* in the HTML pages. +### Webpack Configuration + +Using Webpack you may encounter the following error: "Module not found: Error: +Cannot resolve module", most certainly you should disable AMD loader. Add/merge +the following section to your webpack config: + +```javascript +module: { + rules: [ + { + parser: { + amd: false + } + } + ] +} +``` + ## Getting Started Please follow the [installation](#installation) instruction and execute the following JS code: diff --git a/samples/client/petstore/javascript-promise-es6/README.md b/samples/client/petstore/javascript-promise-es6/README.md index 05378564d17..6ad6f81b3f5 100644 --- a/samples/client/petstore/javascript-promise-es6/README.md +++ b/samples/client/petstore/javascript-promise-es6/README.md @@ -45,6 +45,24 @@ browserify main.js > bundle.js Then include *bundle.js* in the HTML pages. +### Webpack Configuration + +Using Webpack you may encounter the following error: "Module not found: Error: +Cannot resolve module", most certainly you should disable AMD loader. Add/merge +the following section to your webpack config: + +```javascript +module: { + rules: [ + { + parser: { + amd: false + } + } + ] +} +``` + ## Getting Started Please follow the [installation](#installation) instruction and execute the following JS code: diff --git a/samples/client/petstore/javascript-promise/README.md b/samples/client/petstore/javascript-promise/README.md index 05378564d17..6ad6f81b3f5 100644 --- a/samples/client/petstore/javascript-promise/README.md +++ b/samples/client/petstore/javascript-promise/README.md @@ -45,6 +45,24 @@ browserify main.js > bundle.js Then include *bundle.js* in the HTML pages. +### Webpack Configuration + +Using Webpack you may encounter the following error: "Module not found: Error: +Cannot resolve module", most certainly you should disable AMD loader. Add/merge +the following section to your webpack config: + +```javascript +module: { + rules: [ + { + parser: { + amd: false + } + } + ] +} +``` + ## Getting Started Please follow the [installation](#installation) instruction and execute the following JS code: diff --git a/samples/client/petstore/javascript/README.md b/samples/client/petstore/javascript/README.md index 740edf8857d..a58e731b223 100644 --- a/samples/client/petstore/javascript/README.md +++ b/samples/client/petstore/javascript/README.md @@ -45,6 +45,24 @@ browserify main.js > bundle.js Then include *bundle.js* in the HTML pages. +### Webpack Configuration + +Using Webpack you may encounter the following error: "Module not found: Error: +Cannot resolve module", most certainly you should disable AMD loader. Add/merge +the following section to your webpack config: + +```javascript +module: { + rules: [ + { + parser: { + amd: false + } + } + ] +} +``` + ## Getting Started Please follow the [installation](#installation) instruction and execute the following JS code: From c26b5a1e1bd83ef7b27032f2ce453d08224ff0d4 Mon Sep 17 00:00:00 2001 From: Vlad Frolov Date: Tue, 20 Jun 2017 11:27:07 +0300 Subject: [PATCH 13/33] [JavaScript] Fixed *WithHttpInfo methods in 'usePromises' mode to be ES5 compatible (#3654) (#4902) (#5871) --- .../src/main/resources/Javascript/ApiClient.mustache | 2 +- samples/client/petstore/javascript-promise/src/ApiClient.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Javascript/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Javascript/ApiClient.mustache index a78f20a1b92..01660219ed8 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/ApiClient.mustache @@ -450,7 +450,7 @@ if (_this.enableCookies && typeof window === 'undefined'){ _this.agent.saveCookies(response); } - resolve({data, response}); + resolve({data: data, response: response}); } catch (err) { reject(err); } diff --git a/samples/client/petstore/javascript-promise/src/ApiClient.js b/samples/client/petstore/javascript-promise/src/ApiClient.js index 76e1384fdb1..fac8904e521 100644 --- a/samples/client/petstore/javascript-promise/src/ApiClient.js +++ b/samples/client/petstore/javascript-promise/src/ApiClient.js @@ -447,7 +447,7 @@ if (_this.enableCookies && typeof window === 'undefined'){ _this.agent.saveCookies(response); } - resolve({data, response}); + resolve({data: data, response: response}); } catch (err) { reject(err); } From e53b3a03aaa496bf9b912423d4132ba5f1043d89 Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 20 Jun 2017 22:20:05 +0800 Subject: [PATCH 14/33] [PowerShell] Add PowerShell API client generator (WIP) (#5789) * add powershell generator (wip) * minor fix to api template * rename model files * Powershell generator fix (#11) * Fix typo pacakge -> package * Add missing `petstore` subfolder to $ClientPath * Resolve $ClientPath to absolute path Start-Process needs WorkingDirectory to be absolute * Fix spaces in variable name ${ somevar } is a vairable that literally has spaces in name. We need to temporarily redifine mustache delimiters so we can generate var. names without spaces. * Fix typo Remove stray `r` * Fix *.ps1 import in module Directory structure has changed + we should export functions using manifest. * Remove erroneous file * various fixes and enhancements * remove nullable for string * change function name based on feedback by beatcracker * set index to start at 0 * fix file type * Powershell generator fix 1 (#12) * Add closing curly brace * Fix duplicated '[' * Get FunctionsToExport using AST Discussion: swagger-api/swagger-codegen#5789 * add guid option to powershell generator * add test files, remove docs * fix array of items * clean up powershell comment, update model/api test files --- bin/powershell-petstore.sh | 31 + bin/windows/powershell-petsstore.bat | 10 + .../languages/PowerShellClientCodegen.java | 392 +++++++++++++ .../services/io.swagger.codegen.CodegenConfig | 1 + .../resources/powershell/Build.ps1.mustache | 86 +++ .../powershell/Get-CommonParameters.ps1 | 14 + .../powershell/IO.Swagger.psm1.mustache | 33 ++ .../powershell/Out-DebugParameter.ps1 | 37 ++ .../main/resources/powershell/README.mustache | 99 ++++ .../about_IO.Swagger.help.txt.mustache | 27 + .../main/resources/powershell/api.mustache | 30 + .../resources/powershell/api_doc.mustache | 105 ++++ .../resources/powershell/api_test.mustache | 17 + .../main/resources/powershell/model.mustache | 29 + .../resources/powershell/model_doc.mustache | 14 + .../resources/powershell/model_test.mustache | 6 + .../powershell/.swagger-codegen-ignore | 23 + .../powershell/.swagger-codegen/VERSION | 1 + samples/client/petstore/powershell/Build.ps1 | 86 +++ samples/client/petstore/powershell/README.md | 101 ++++ .../petstore/powershell/docs/ApiResponse.md | 11 + .../petstore/powershell/docs/Category.md | 10 + .../client/petstore/powershell/docs/Order.md | 14 + .../client/petstore/powershell/docs/Pet.md | 14 + .../client/petstore/powershell/docs/PetApi.md | 536 ++++++++++++++++++ .../petstore/powershell/docs/StoreApi.md | 256 +++++++++ .../client/petstore/powershell/docs/Tag.md | 10 + .../client/petstore/powershell/docs/User.md | 16 + .../petstore/powershell/docs/UserApi.md | 498 ++++++++++++++++ .../powershell/src/IO.Swagger/API/PetApi.ps1 | 164 ++++++ .../src/IO.Swagger/API/StoreApi.ps1 | 68 +++ .../powershell/src/IO.Swagger/API/UserApi.ps1 | 148 +++++ .../src/IO.Swagger/Bin/IO.Swagger.dll | Bin 0 -> 222720 bytes .../src/IO.Swagger/Bin/Newtonsoft.Json.dll | Bin 0 -> 522752 bytes .../src/IO.Swagger/Bin/RestSharp.dll | Bin 0 -> 167936 bytes .../powershell/src/IO.Swagger/IO.Swagger.psd1 | Bin 0 -> 9840 bytes .../powershell/src/IO.Swagger/IO.Swagger.psm1 | 29 + .../src/IO.Swagger/Model/New-ApiResponse.ps1 | 25 + .../src/IO.Swagger/Model/New-Category.ps1 | 21 + .../src/IO.Swagger/Model/New-Order.ps1 | 37 ++ .../src/IO.Swagger/Model/New-Pet.ps1 | 37 ++ .../src/IO.Swagger/Model/New-Tag.ps1 | 21 + .../src/IO.Swagger/Model/New-User.ps1 | 45 ++ .../Private/Get-CommonParameters.ps1 | 14 + .../IO.Swagger/Private/Out-DebugParameter.ps1 | 37 ++ .../en-US/about_IO.Swagger.help.txt | 20 + .../powershell_test/.swagger-codegen-ignore | 23 + .../powershell_test/.swagger-codegen/VERSION | 1 + .../client/petstore/powershell_test/Build.ps1 | 86 +++ .../client/petstore/powershell_test/README.md | 101 ++++ .../src/IO.Swagger/API/PetApi.ps1 | 164 ++++++ .../src/IO.Swagger/API/StoreApi.ps1 | 68 +++ .../src/IO.Swagger/API/UserApi.ps1 | 148 +++++ .../src/IO.Swagger/IO.Swagger.psm1 | 29 + .../src/IO.Swagger/Model/New-ApiResponse.ps1 | 25 + .../src/IO.Swagger/Model/New-Category.ps1 | 21 + .../src/IO.Swagger/Model/New-Order.ps1 | 37 ++ .../src/IO.Swagger/Model/New-Pet.ps1 | 37 ++ .../src/IO.Swagger/Model/New-Tag.ps1 | 21 + .../src/IO.Swagger/Model/New-User.ps1 | 45 ++ .../Private/Get-CommonParameters.ps1 | 14 + .../IO.Swagger/Private/Out-DebugParameter.ps1 | 37 ++ .../en-US/about_IO.Swagger.help.txt | 20 + .../powershell_test/test/ApiResponseTest.ps1 | 2 + .../powershell_test/test/CategoryTest.ps1 | 2 + .../powershell_test/test/OrderTest.ps1 | 2 + .../powershell_test/test/PetApiTest.ps1 | 69 +++ .../petstore/powershell_test/test/PetTest.ps1 | 2 + .../powershell_test/test/StoreApiTest.ps1 | 37 ++ .../petstore/powershell_test/test/TagTest.ps1 | 2 + .../powershell_test/test/UserApiTest.ps1 | 69 +++ .../powershell_test/test/UserTest.ps1 | 2 + 72 files changed, 4237 insertions(+) create mode 100755 bin/powershell-petstore.sh create mode 100644 bin/windows/powershell-petsstore.bat create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java create mode 100644 modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/Get-CommonParameters.ps1 create mode 100644 modules/swagger-codegen/src/main/resources/powershell/IO.Swagger.psm1.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/Out-DebugParameter.ps1 create mode 100644 modules/swagger-codegen/src/main/resources/powershell/README.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/about_IO.Swagger.help.txt.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/api.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/api_doc.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/api_test.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/model.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/model_doc.mustache create mode 100644 modules/swagger-codegen/src/main/resources/powershell/model_test.mustache create mode 100644 samples/client/petstore/powershell/.swagger-codegen-ignore create mode 100644 samples/client/petstore/powershell/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/powershell/Build.ps1 create mode 100644 samples/client/petstore/powershell/README.md create mode 100644 samples/client/petstore/powershell/docs/ApiResponse.md create mode 100644 samples/client/petstore/powershell/docs/Category.md create mode 100644 samples/client/petstore/powershell/docs/Order.md create mode 100644 samples/client/petstore/powershell/docs/Pet.md create mode 100644 samples/client/petstore/powershell/docs/PetApi.md create mode 100644 samples/client/petstore/powershell/docs/StoreApi.md create mode 100644 samples/client/petstore/powershell/docs/Tag.md create mode 100644 samples/client/petstore/powershell/docs/User.md create mode 100644 samples/client/petstore/powershell/docs/UserApi.md create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/API/PetApi.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/API/StoreApi.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/API/UserApi.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Bin/IO.Swagger.dll create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Bin/Newtonsoft.Json.dll create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Bin/RestSharp.dll create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psd1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psm1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Model/New-ApiResponse.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Model/New-Category.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Model/New-Order.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Model/New-Pet.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Model/New-Tag.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Model/New-User.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Private/Get-CommonParameters.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/Private/Out-DebugParameter.ps1 create mode 100644 samples/client/petstore/powershell/src/IO.Swagger/en-US/about_IO.Swagger.help.txt create mode 100644 samples/client/petstore/powershell_test/.swagger-codegen-ignore create mode 100644 samples/client/petstore/powershell_test/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/powershell_test/Build.ps1 create mode 100644 samples/client/petstore/powershell_test/README.md create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/API/PetApi.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/API/StoreApi.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/API/UserApi.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/IO.Swagger.psm1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-ApiResponse.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Category.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Order.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Pet.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Tag.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-User.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Private/Get-CommonParameters.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/Private/Out-DebugParameter.ps1 create mode 100644 samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt create mode 100644 samples/client/petstore/powershell_test/test/ApiResponseTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/CategoryTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/OrderTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/PetApiTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/PetTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/StoreApiTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/TagTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/UserApiTest.ps1 create mode 100644 samples/client/petstore/powershell_test/test/UserTest.ps1 diff --git a/bin/powershell-petstore.sh b/bin/powershell-petstore.sh new file mode 100755 index 00000000000..977a4147cb3 --- /dev/null +++ b/bin/powershell-petstore.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +SCRIPT="$0" + +while [ -h "$SCRIPT" ] ; do + ls=$(ls -ld "$SCRIPT") + link=$(expr "$ls" : '.*-> \(.*\)$') + if expr "$link" : '/.*' > /dev/null; then + SCRIPT="$link" + else + SCRIPT=$(dirname "$SCRIPT")/"$link" + fi +done + +if [ ! -d "${APP_DIR}" ]; then + APP_DIR=$(dirname "$SCRIPT")/.. + APP_DIR=$(cd "${APP_DIR}"; pwd) +fi + +executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar" + +if [ ! -f "$executable" ] +then + mvn clean package +fi + +# if you've executed sbt assembly previously it will use that instead. +export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" +ags="generate -t modules/swagger-codegen/src/main/resources/powershell -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l powershell -o samples/client/petstore/powershell_test --additional-properties packageGuid=a27b908d-2a20-467f-bc32-af6f3a654ac5 $@" + +java ${JAVA_OPTS} -jar ${executable} ${ags} diff --git a/bin/windows/powershell-petsstore.bat b/bin/windows/powershell-petsstore.bat new file mode 100644 index 00000000000..0a066b8ae48 --- /dev/null +++ b/bin/windows/powershell-petsstore.bat @@ -0,0 +1,10 @@ +set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar + +If Not Exist %executable% ( + mvn clean package +) + +REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.yaml -l powershell -o samples\client\petstore\powershell + +java %JAVA_OPTS% -jar %executable% %ags% diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java new file mode 100644 index 00000000000..e884828fccc --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java @@ -0,0 +1,392 @@ +package io.swagger.codegen.languages; + +import io.swagger.codegen.*; +import io.swagger.models.properties.ArrayProperty; +import io.swagger.models.properties.MapProperty; +import io.swagger.models.properties.Property; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import static java.util.UUID.randomUUID; + +public class PowerShellClientCodegen extends DefaultCodegen implements CodegenConfig { + static Logger LOGGER = LoggerFactory.getLogger(PowerShellClientCodegen.class); + + private String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}"; + + protected String sourceFolder = "src"; + protected String packageName = "IO.Swagger"; + protected String apiDocPath = "docs/"; + protected String modelDocPath = "docs/"; + + /** + * Constructs an instance of `PowerShellClientCodegen`. + */ + public PowerShellClientCodegen() { + super(); + + outputFolder = "generated-code" + File.separator + "powershell"; + modelTemplateFiles.put("model.mustache", ".ps1"); + apiTemplateFiles.put("api.mustache", ".ps1"); + modelTestTemplateFiles.put("model_test.mustache", ".ps1"); + apiTestTemplateFiles.put("api_test.mustache", ".ps1"); + modelDocTemplateFiles.clear(); + apiDocTemplateFiles.clear(); + embeddedTemplateDir = templateDir = "powershell"; + apiPackage = packageName + File.separator + "API"; + modelPackage = packageName + File.separator + "Model"; + + // https://blogs.msdn.microsoft.com/powershell/2010/01/07/how-objects-are-sent-to-and-from-remote-sessions/ + languageSpecificPrimitives = new HashSet(Arrays.asList( + "Byte", + "SByte", + "Byte[]", + "Int16", + "Int32", + "Int64", + "UInt16", + "UInt32", + "UInt64", + "Decimal", + "Single", + "Double", + "TimeSpan", + "System.DateTime", + "ProgressRecord", + "Char", + "String", + "XmlDocument", + "SecureString", + "Boolean", + "Guid", + "Uri", + "Version" + )); + + // https://richardspowershellblog.wordpress.com/2009/05/02/powershell-reserved-words/ + reservedWords = new HashSet(Arrays.asList( + "Begin", + "Break", + "Catch", + "Continue", + "Data", + "Do", + "Dynamicparam", + "Else", + "Elseif", + "End", + "Exit", + "Filter", + "Finally", + "For", + "Foreach", + "From", + "Function", + "If", + "In", + "Param", + "Process", + "Return", + "Switch", + "Throw", + "Trap", + "Try", + "Until", + "While", + "Local", + "Private", + "Where" + )); + + + defaultIncludes = new HashSet(Arrays.asList( + "Byte", + "SByte", + "Byte[]", + "Int16", + "Int32", + "Int64", + "UInt16", + "UInt32", + "UInt64", + "Decimal", + "Single", + "Double", + "TimeSpan", + "System.DateTime", + "ProgressRecord", + "Char", + "String", + "XmlDocument", + "SecureString", + "Boolean", + "Guid", + "Uri", + "Version" + )); + + typeMapping = new HashMap(); + typeMapping.put("string", "String"); + typeMapping.put("boolean", "Boolean"); + typeMapping.put("integer", "Int32"); + typeMapping.put("float", "Double"); + typeMapping.put("long", "Int64"); + typeMapping.put("double", "Double"); + typeMapping.put("number", "Decimal"); + typeMapping.put("date-time", "System.DateTime"); + typeMapping.put("date", "System.DateTime"); + typeMapping.put("file", "String"); + typeMapping.put("object", "String"); + typeMapping.put("binary", "String"); + typeMapping.put("Date", "System.DateTime"); + typeMapping.put("DateTime", "System.DateTime"); + + cliOptions.clear(); + cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "Client package name (e.g. io.swagger.client).").defaultValue(this.packageName)); + cliOptions.add(new CliOption(CodegenConstants.OPTIONAL_PROJECT_GUID, "GUID for PowerShell module (e.g. a27b908d-2a20-467f-bc32-af6f3a654ac5). A random GUID will be generated by default.")); + } + + public CodegenType getTag() { + return CodegenType.CLIENT; + } + + public String getName() { + return "powershell"; + } + + public String getHelp() { + return "Generates a PowerShell API client (beta)."; + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public void setSourceFolder(String sourceFolder) { + this.sourceFolder = sourceFolder; + } + + public void setPackageGuid(String packageGuid) { + this.packageGuid = packageGuid; + } + + @Override + public void processOpts() { + super.processOpts(); + + if (additionalProperties.containsKey(CodegenConstants.OPTIONAL_PROJECT_GUID)) { + setPackageGuid((String) additionalProperties.get(CodegenConstants.OPTIONAL_PROJECT_GUID)); + } + additionalProperties.put("packageGuid", packageGuid); + + if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) { + this.setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME)); + } else { + additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName); + } + + if (additionalProperties.containsKey(CodegenConstants.MODEL_PACKAGE)) { + LOGGER.warn(CodegenConstants.MODEL_PACKAGE + " with " + this.getName() + " generator is ignored. Setting this value independently of " + CodegenConstants.PACKAGE_NAME + " is not currently supported."); + } + + if (additionalProperties.containsKey(CodegenConstants.API_PACKAGE)) { + LOGGER.warn(CodegenConstants.API_PACKAGE + " with " + this.getName() + " generator is ignored. Setting this value independently of " + CodegenConstants.PACKAGE_NAME + " is not currently supported."); + } + + additionalProperties.put(CodegenConstants.API_PACKAGE, apiPackage()); + additionalProperties.put(CodegenConstants.MODEL_PACKAGE, modelPackage()); + + additionalProperties.put("apiDocPath", apiDocPath); + additionalProperties.put("modelDocPath", modelDocPath); + + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + supportingFiles.add(new SupportingFile("Build.ps1.mustache", "", "Build.ps1")); + + final String infrastructureFolder = (sourceFolder + File.separator + packageName + File.separator); + + supportingFiles.add(new SupportingFile("IO.Swagger.psm1.mustache", infrastructureFolder, packageName + ".psm1")); + + // private + supportingFiles.add(new SupportingFile("Get-CommonParameters.ps1", infrastructureFolder + File.separator + "Private" + File.separator, "Get-CommonParameters.ps1")); + supportingFiles.add(new SupportingFile("Out-DebugParameter.ps1", infrastructureFolder + File.separator + "Private" + File.separator, "Out-DebugParameter.ps1")); + + // en-US + supportingFiles.add(new SupportingFile("about_IO.Swagger.help.txt.mustache", infrastructureFolder + File.separator + "en-US" + File.separator + "about_" + packageName + ".help.txt")); + + } + + @Override + public String escapeUnsafeCharacters(String input) { + return input.replace("#>", "#_>").replace("<#", "<_#"); + } + + @Override + public String escapeQuotationMark(String input) { + // remove " to avoid code injection + return input.replace("\"", ""); + } + + @Override + public String apiTestFileFolder() { + return (outputFolder + "/test").replace('/', File.separatorChar); + } + + @Override + public String apiDocFileFolder() { + return (outputFolder + "/" + apiDocPath).replace('/', File.separatorChar); + } + + @Override + public String apiFileFolder() { + return outputFolder + File.separator + sourceFolder + File.separator + apiPackage(); + } + + @Override + public String modelTestFileFolder() { + return (outputFolder + "/test").replace('/', File.separatorChar); + } + + @Override + public String modelDocFileFolder() { + return (outputFolder + "/" + modelDocPath).replace('/', File.separatorChar); + } + + + @Override + public String modelFileFolder() { + return outputFolder + File.separator + sourceFolder + File.separator + modelPackage(); + } + + @Override + public String escapeReservedWord(String name) { + return "_" + name; + } + + /** + * Output the proper model name (capitalized). + * In case the name belongs to the TypeSystem it won't be renamed. + * + * @param name the name of the model + * @return capitalized model name + */ + @Override + public String toModelName(String name) { + if (!StringUtils.isEmpty(modelNamePrefix)) { + name = modelNamePrefix + "_" + name; + } + + if (!StringUtils.isEmpty(modelNameSuffix)) { + name = name + "_" + modelNameSuffix; + } + + name = sanitizeName(name); + + // model name cannot use reserved keyword, e.g. return + if (isReservedWord(name)) { + LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name)); + name = "model_" + name; // e.g. return => ModelReturn (after camelize) + } + + // model name starts with number + if (name.matches("^\\d.*")) { + LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + camelize("model_" + name)); + name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) + } + + // camelize the model name + // phone_number => PhoneNumber + return camelize(name); + } + + @Override + public String toModelFilename(String name) { + // should be the same as the model name + return "New-" + toModelName(name); + } + + /** + * returns the swagger type for the property + * + * @param p Swagger property object + * @return string presentation of the type + **/ + @Override + public String getSwaggerType(Property p) { + String swaggerType = super.getSwaggerType(p); + String type; + + // This maps, for example, long -> Long based on hashes in this type's constructor + if (typeMapping.containsKey(swaggerType)) { + type = typeMapping.get(swaggerType); + if (languageSpecificPrimitives.contains(type)) { + return type; + } + } else { + type = swaggerType; + } + + // model/object + return toModelName(type); + } + + /** + * Output the type declaration of the property + * + * @param p Swagger Property object + * @return a string presentation of the property type + */ + @Override + public String getTypeDeclaration(Property p) { + if (p instanceof ArrayProperty) { + ArrayProperty ap = (ArrayProperty) p; + Property inner = ap.getItems(); + return getTypeDeclaration(inner) + "[]"; + } else if (p instanceof MapProperty) { + MapProperty mp = (MapProperty) p; + Property inner = mp.getAdditionalProperties(); + // TODO not sure if the following map/hash declaration is correct + return "{String, " + getTypeDeclaration(inner) + "}"; + } else if (!languageSpecificPrimitives.contains(getSwaggerType(p))) { + return packageName + ".Model." + super.getTypeDeclaration(p); + } + return super.getTypeDeclaration(p); + } + + @Override + public String toOperationId(String operationId) { + // throw exception if method name is empty (should not occur as an auto-generated method name will be used) + if (StringUtils.isEmpty(operationId)) { + throw new RuntimeException("Empty method name (operationId) not allowed"); + } + + // method name cannot use reserved keyword, e.g. return + if (isReservedWord(operationId)) { + LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + camelize(sanitizeName("call_" + operationId))); + operationId = "call_" + operationId; + } + + return camelize(sanitizeName(operationId)); + } + + @Override + public Map postProcessOperations(Map objs) { + Map operations = (Map) objs.get("operations"); + List operationList = (List) operations.get("operation"); + for (CodegenOperation op : operationList) { + int index = 0; + for (CodegenParameter p : op.allParams) { + p.vendorExtensions.put("x-index", index); + index++; + } + } + return objs; + } +} diff --git a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig index aaa9f782731..b8c4c7e9397 100644 --- a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig +++ b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig @@ -42,6 +42,7 @@ io.swagger.codegen.languages.NodeJSServerCodegen io.swagger.codegen.languages.ObjcClientCodegen io.swagger.codegen.languages.PerlClientCodegen io.swagger.codegen.languages.PhpClientCodegen +io.swagger.codegen.languages.PowerShellClientCodegen io.swagger.codegen.languages.PistacheServerCodegen io.swagger.codegen.languages.PythonClientCodegen io.swagger.codegen.languages.Qt5CPPGenerator diff --git a/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache b/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache new file mode 100644 index 00000000000..fb71a543014 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache @@ -0,0 +1,86 @@ +function Get-FunctionsToExport { + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [Alias('FullName')] + $Path + ) + + Process { + $Token = $null + $ParserErr = $null + + $Ast = [System.Management.Automation.Language.Parser]::ParseFile( + $Path, + [ref]$Token, + [ref]$ParserErr + ) + + if ($ParserErr) { + throw $ParserErr + } else { + foreach ($name in 'Begin', 'Process', 'End') { + foreach ($Statement in $Ast."${name}Block".Statements) { + if ( + [String]::IsNullOrWhiteSpace($Statement.Name) -or + $Statement.Extent.ToString() -notmatch + ('function\W+{0}' -f $Statement.Name) + ) { + continue + } + + $Statement.Name + } + } + } + } +} + +$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path +$ClientPath = ("$ScriptDir\..\..\petstore\csharp\SwaggerClient" | Resolve-Path).ProviderPath +$FunctionPath = 'API', 'Model' | ForEach-Object {Join-Path "$ScriptDir\src\{{{packageName}}}\" $_} +$BinPath = "$ScriptDir\src\{{{packageName}}}\Bin" + +Start-Process -FilePath "$ClientPath\build.bat" -WorkingDirectory $ClientPath -Wait -NoNewWindow + +if (!(Test-Path "$ScriptDir\src\{{{packageName}}}\Bin" -PathType Container)) { + New-Item "$ScriptDir\src\{{{packageName}}}\Bin" -ItemType Directory > $null +} + +Copy-Item "$ClientPath\bin\*.dll" $BinPath + +$Manifest = @{ + Path = "$ScriptDir\src\{{{packageName}}}\{{{packageName}}}.psd1" + + Author = 'Swagger Codegen Team' + CompanyName = 'swagger.io' + Description = '{{{packageName}}} - the PowerShell module for {{{appName}}}' + + RootModule = '{{{packageName}}}.psm1' + Guid = '{{packageGuid}}' # Has to be static, otherwise each new build will be considered different module + + PowerShellVersion = '3.0' + + RequiredAssemblies = Get-ChildItem "$BinPath\*.dll" | ForEach-Object { + Join-Path $_.Directory.Name $_.Name + } + + FunctionsToExport = $FunctionPath | Get-ChildItem -Filter *.ps1 | Get-FunctionsToExport + + VariablesToExport = @() + AliasesToExport = @() + CmdletsToExport = @() + + # Should we use prefix to prevent command name collisions? + # https://www.sapien.com/blog/2016/02/15/use-prefixes-to-prevent-command-name-collision/ + # + # Kirk Munro recommends against it: + # https://www.sapien.com/blog/2016/02/15/use-prefixes-to-prevent-command-name-collision/#comment-20820 + # + # If not, we'd need to generate functions name with prefix. + # + # DefaultCommandPrefix = 'PetStore' +} + +New-ModuleManifest @Manifest diff --git a/modules/swagger-codegen/src/main/resources/powershell/Get-CommonParameters.ps1 b/modules/swagger-codegen/src/main/resources/powershell/Get-CommonParameters.ps1 new file mode 100644 index 00000000000..31a0a1ff3af --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/Get-CommonParameters.ps1 @@ -0,0 +1,14 @@ +<# +.Synopsis + Helper function to get common parameters (Verbose, Debug, etc.) +.Example + Get-CommonParameters +#> +function Get-CommonParameters { + function tmp { + [CmdletBinding()] + Param () + } + + (Get-Command -Name tmp -CommandType Function).Parameters.Keys +} diff --git a/modules/swagger-codegen/src/main/resources/powershell/IO.Swagger.psm1.mustache b/modules/swagger-codegen/src/main/resources/powershell/IO.Swagger.psm1.mustache new file mode 100644 index 00000000000..6d0339a2b4e --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/IO.Swagger.psm1.mustache @@ -0,0 +1,33 @@ +#region Import functions + +'API', 'Model', 'Private' | Get-ChildItem -Path { + Join-Path $PSScriptRoot $_ +} -Filter '*.ps1' | ForEach-Object { + Write-Verbose "Importing file: $($_.BaseName)" + try { + . $_.FullName + } catch { + Write-Verbose "Can't import function!" + } +} + +#endregion + + +#region Initialize APIs + +{{#apiInfo}} +{{#apis}} +{{#operations}} +{{#operation}} +{{#-first}} +'Creating object: {{{packageName}}}.Api.{{{classname}}}' | Write-Verbose +$Script:{{{classname}}}= New-Object -TypeName {{{packageName}}}.Api.{{{classname}}} -ArgumentList @($null) + +{{/-first}} +{{/operation}} +{{/operations}} +{{/apis}} +{{/apiInfo}} + +#endregion diff --git a/modules/swagger-codegen/src/main/resources/powershell/Out-DebugParameter.ps1 b/modules/swagger-codegen/src/main/resources/powershell/Out-DebugParameter.ps1 new file mode 100644 index 00000000000..ca18c391cc1 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/Out-DebugParameter.ps1 @@ -0,0 +1,37 @@ +<# +.Synopsis + Helper function to format debug parameter output. +.Example + $PSBoundParameters | Out-DebugParameter | Write-Debug +#> +function Out-DebugParameter { + [CmdletBinding()] + Param ( + [Parameter(ValueFromPipeline = $true, Mandatory = $true)] + [AllowEmptyCollection()] + $InputObject + ) + + Begin { + $CommonParameters = Get-CommonParameters + } + + Process { + $InputObject.GetEnumerator() | Where-Object { + $CommonParameters -notcontains $_.Key + } | Format-Table -AutoSize -Property ( + @{ + Name = 'Parameter' + Expression = {$_.Key} + }, + @{ + Name = 'Value' + Expression = {$_.Value} + } + ) | Out-String -Stream | ForEach-Object { + if ($_.Trim()) { + $_ + } + } + } +} diff --git a/modules/swagger-codegen/src/main/resources/powershell/README.mustache b/modules/swagger-codegen/src/main/resources/powershell/README.mustache new file mode 100644 index 00000000000..76dc67b7d79 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/README.mustache @@ -0,0 +1,99 @@ +# {{packageName}} - the PowerShell module for the {{appName}} + +{{#appDescription}} +{{{appDescription}}} +{{/appDescription}} + +This PowerShell module is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: {{appVersion}} +- SDK version: {{packageVersion}} +{{^hideGenerationTimestamp}} +- Build date: {{generatedDate}} +{{/hideGenerationTimestamp}} +- Build package: {{generatorClass}} +{{#infoUrl}} + For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) +{{/infoUrl}} + + +## Frameworks supported +- .NET 4.0 or later +- PowerShell 3.0 or later + + +## Dependencies +- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later +- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later + +The DLLs included in the package may not be the latest version. We recommend using [NuGet] (https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: +``` +Install-Package RestSharp +Install-Package Newtonsoft.Json +``` + +NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) + + +## Installation +Run the following command to generate the DLL +- [Windows] `Build.ps1` + +Then import module from the .\src\{{{packageName}}} folder: +```powershell +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.Client; +using {{packageName}}.{{modelPackage}}; +``` + + +## Documentation for API Endpoints + +All URIs are relative to *{{{basePath}}}* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{{summary}}}{{/summary}} +{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}} + + +## Documentation for Models + +{{#modelPackage}} +{{#models}}{{#model}} - [{{{modelPackage}}}.{{{classname}}}]({{modelDocPath}}{{{classname}}}.md) +{{/model}}{{/models}} +{{/modelPackage}} +{{^modelPackage}} +No model defined in this package +{{/modelPackage}} + + +## Documentation for Authorization + +{{^authMethods}} +All endpoints do not require authorization. +{{/authMethods}} +{{#authMethods}} +{{#last}} +Authentication schemes defined for the API: +{{/last}} +{{/authMethods}} +{{#authMethods}} + +### {{name}} + +{{#isApiKey}}- **Type**: API key +- **API key parameter name**: {{keyParamName}} +- **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}} +{{/isApiKey}} +{{#isBasic}}- **Type**: HTTP basic authentication +{{/isBasic}} +{{#isOAuth}}- **Type**: OAuth +- **Flow**: {{flow}} +- **Authorization URL**: {{authorizationUrl}} +- **Scopes**: {{^scopes}}N/A{{/scopes}} +{{#scopes}} - {{scope}}: {{description}} +{{/scopes}} +{{/isOAuth}} + +{{/authMethods}} diff --git a/modules/swagger-codegen/src/main/resources/powershell/about_IO.Swagger.help.txt.mustache b/modules/swagger-codegen/src/main/resources/powershell/about_IO.Swagger.help.txt.mustache new file mode 100644 index 00000000000..c711fad9169 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/about_IO.Swagger.help.txt.mustache @@ -0,0 +1,27 @@ +PSTOPIC + about_{{{packageName}}} + +SHORT DESCRIPTION + {{{packageName}}} - the PowerShell module for the {{{appName}}} + +LONG DESCRIPTION +{{#appDescription}} + {{{appDescription}}} + +{{/appDescription}} + This PowerShell module is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + + - API version: {{appVersion}} + - SDK version: {{packageVersion}} + {{^hideGenerationTimestamp}} + - Build date: {{generatedDate}} + {{/hideGenerationTimestamp}} + - Build package: {{{generatorClass}}} + {{#infoUrl}} + For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) + {{/infoUrl}} + + Frameworks supported: + + * PowerShell 3.0+ + * .NET 4.0 or later diff --git a/modules/swagger-codegen/src/main/resources/powershell/api.mustache b/modules/swagger-codegen/src/main/resources/powershell/api.mustache new file mode 100644 index 00000000000..98fb6bb7d16 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/api.mustache @@ -0,0 +1,30 @@ +{{#operations}} +{{#operation}} +function Invoke-{{{classname}}}{{{operationId}}} { + [CmdletBinding()] + Param ( + {{#allParams}} + [Parameter(Position = {{vendorExtensions.x-index}}, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = {{#required}}$true{{/required}}{{^required}}$false{{/required}})] + [{{^isContainer}}{{^isPrimitiveType}}{{^isFile}}{{{packageName}}}.Model.{{/isFile}}{{/isPrimitiveType}}{{/isContainer}}{{{dataType}}}] + {{=<% %>=}} + ${<%paramName%>}<%^-last%>,<%/-last%> + <%={{ }}=%> + {{/allParams}} + ) + + Process { + 'Calling method: {{{classname}}}-{{{operationId}}}' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:{{{classname}}}.{{{operationId}}}( + {{#allParams}} + {{=<% %>=}} + ${<%paramName%>}<%^-last%>,<%/-last%> + <%={{ }}=%> + {{/allParams}} + ) + } +} + +{{/operation}} +{{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/powershell/api_doc.mustache b/modules/swagger-codegen/src/main/resources/powershell/api_doc.mustache new file mode 100644 index 00000000000..ff3cf4fc60a --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/api_doc.mustache @@ -0,0 +1,105 @@ +# {{packageName}}.{{apiPackage}}.{{classname}}{{#description}} +{{description}}{{/description}} + +All URIs are relative to *{{{basePath}}}* + +Method | HTTP request | Description +------------- | ------------- | ------------- +{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}} +{{/operation}}{{/operations}} + +{{#operations}} +{{#operation}} + +# **{{{operationId}}}** +> {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{operationId}} ({{#allParams}}{{{dataType}}} {{paramName}}{{^required}}{{#optionalMethodArgument}} = null{{/optionalMethodArgument}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + +{{{summary}}}{{#notes}} + +{{{notes}}}{{/notes}} + +### Example +```csharp +using System; +using System.Diagnostics; +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.Client; +using {{packageName}}.{{modelPackage}}; + +namespace Example +{ + public class {{operationId}}Example + { + public void main() + { + {{#hasAuthMethods}} + {{#authMethods}} + {{#isBasic}} + // Configure HTTP basic authorization: {{{name}}} + Configuration.Default.Username = "YOUR_USERNAME"; + Configuration.Default.Password = "YOUR_PASSWORD"; + {{/isBasic}} + {{#isApiKey}} + // Configure API key authorization: {{{name}}} + Configuration.Default.ApiKey.Add("{{{keyParamName}}}", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.ApiKeyPrefix.Add("{{{keyParamName}}}", "Bearer"); + {{/isApiKey}} + {{#isOAuth}} + // Configure OAuth2 access token for authorization: {{{name}}} + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + {{/isOAuth}} + {{/authMethods}} + + {{/hasAuthMethods}} + var apiInstance = new {{classname}}(); + {{#allParams}} + {{#isPrimitiveType}} + var {{paramName}} = {{{example}}}; // {{{dataType}}} | {{{description}}}{{^required}} (optional) {{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}} + {{/isPrimitiveType}} + {{^isPrimitiveType}} + var {{paramName}} = new {{{dataType}}}(); // {{{dataType}}} | {{{description}}}{{^required}} (optional) {{/required}}{{#defaultValue}} (default to {{{.}}}){{/defaultValue}} + {{/isPrimitiveType}} + {{/allParams}} + + try + { + {{#summary}} + // {{{.}}} + {{/summary}} + {{#returnType}}{{returnType}} result = {{/returnType}}apiInstance.{{{operationId}}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{#returnType}} + Debug.WriteLine(result);{{/returnType}} + } + catch (Exception e) + { + Debug.Print("Exception when calling {{classname}}.{{operationId}}: " + e.Message ); + } + } + } +} +``` + +### Parameters +{{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}} +Name | Type | Description | Notes +------------- | ------------- | ------------- | -------------{{/-last}}{{/allParams}} +{{#allParams}} **{{paramName}}** | {{#isFile}}**{{dataType}}**{{/isFile}}{{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{^isFile}}[**{{dataType}}**]({{#isContainer}}{{baseType}}{{/isContainer}}{{^isContainer}}{{dataType}}{{/isContainer}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} | {{^required}}[optional] {{/required}}{{#defaultValue}}[default to {{defaultValue}}]{{/defaultValue}} +{{/allParams}} + +### Return type + +{{#returnType}}{{#returnTypeIsPrimitive}}**{{{returnType}}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{{returnType}}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}void (empty response body){{/returnType}} + +### Authorization + +{{^authMethods}}No authorization required{{/authMethods}}{{#authMethods}}[{{{name}}}](../README.md#{{{name}}}){{^-last}}, {{/-last}}{{/authMethods}} + +### HTTP request headers + + - **Content-Type**: {{#consumes}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/consumes}}{{^consumes}}Not defined{{/consumes}} + - **Accept**: {{#produces}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/produces}}{{^produces}}Not defined{{/produces}} + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +{{/operation}} +{{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/powershell/api_test.mustache b/modules/swagger-codegen/src/main/resources/powershell/api_test.mustache new file mode 100644 index 00000000000..b85e6df53df --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/api_test.mustache @@ -0,0 +1,17 @@ +# This file is auto-generated by Swagger Codegen (https://github.com/swagger-api/swagger-codegen) +# Please replace "TEST_VALUE" with a proper value and uncomment the code for testing the function + +Describe '{{{packageName}}} {{{classname}}}' { +{{#operations}} +{{#operation}} + Context '{{{classname}}}' { + It 'Invoke-{{{classname}}}{{{operationId}}}' { + $ret = Invoke-PetApiGetPetById{{#allParams}} -{{{paramName}}} "TEST_VALUE"{{/allParams}} + #$ret | Should BeOfType {{{packageName}}}.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + +{{/operation}} +{{/operations}} +} diff --git a/modules/swagger-codegen/src/main/resources/powershell/model.mustache b/modules/swagger-codegen/src/main/resources/powershell/model.mustache new file mode 100644 index 00000000000..f3580e2a4c4 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/model.mustache @@ -0,0 +1,29 @@ +{{#models}} +{{#model}} +function New-{{{classname}}} { + [CmdletBinding()] + Param ( +{{#vars}} + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true{{#required}}, Mandatory = $true{{/required}})] + [{{#isString}}{{{datatype}}}{{/isString}}{{^isString}}{{^required}}System.Nullable[{{/required}}{{datatype}}{{^required}}]{{/required}}{{/isString}}] + {{=<% %>=}} + ${<%name%>}<%^-last%>,<%/-last%> + <%={{ }}=%> +{{/vars}} + ) + + Process { + 'Creating object: {{{packageName}}}.Model.{{{classname}}}' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName {{{packageName}}}.Model.{{{classname}}} -ArgumentList @( +{{#vars}} + {{=<% %>=}} + ${<%name%>}<%^-last%>,<%/-last%> + <%={{ }}=%> +{{/vars}} + ) + } +} +{{/model}} +{{/models}} diff --git a/modules/swagger-codegen/src/main/resources/powershell/model_doc.mustache b/modules/swagger-codegen/src/main/resources/powershell/model_doc.mustache new file mode 100644 index 00000000000..112d4725495 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/model_doc.mustache @@ -0,0 +1,14 @@ +{{#models}} +{{#model}} +# {{{packageName}}}.{{modelPackage}}.{{{classname}}} +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +{{#vars}}**{{name}}** | {{#isPrimitiveType}}**{{datatype}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{datatype}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}} +{{/vars}} + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + +{{/model}} +{{/models}} diff --git a/modules/swagger-codegen/src/main/resources/powershell/model_test.mustache b/modules/swagger-codegen/src/main/resources/powershell/model_test.mustache new file mode 100644 index 00000000000..e61c02beb47 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/powershell/model_test.mustache @@ -0,0 +1,6 @@ +{{#models}} +{{#model}} +## TODO we need to update the template to test the model files + +{{/model}} +{{/models}} diff --git a/samples/client/petstore/powershell/.swagger-codegen-ignore b/samples/client/petstore/powershell/.swagger-codegen-ignore new file mode 100644 index 00000000000..c5fa491b4c5 --- /dev/null +++ b/samples/client/petstore/powershell/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/client/petstore/powershell/.swagger-codegen/VERSION b/samples/client/petstore/powershell/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/powershell/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/powershell/Build.ps1 b/samples/client/petstore/powershell/Build.ps1 new file mode 100644 index 00000000000..dfeead2b172 --- /dev/null +++ b/samples/client/petstore/powershell/Build.ps1 @@ -0,0 +1,86 @@ +function Get-FunctionsToExport { + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [Alias('FullName')] + $Path + ) + + Process { + $Token = $null + $ParserErr = $null + + $Ast = [System.Management.Automation.Language.Parser]::ParseFile( + $Path, + [ref]$Token, + [ref]$ParserErr + ) + + if ($ParserErr) { + throw $ParserErr + } else { + foreach ($name in 'Begin', 'Process', 'End') { + foreach ($Statement in $Ast."${name}Block".Statements) { + if ( + [String]::IsNullOrWhiteSpace($Statement.Name) -or + $Statement.Extent.ToString() -notmatch + ('function\W+{0}' -f $Statement.Name) + ) { + continue + } + + $Statement.Name + } + } + } + } +} + +$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path +$ClientPath = ("$ScriptDir\..\..\petstore\csharp\SwaggerClient" | Resolve-Path).ProviderPath +$FunctionPath = 'API', 'Model' | ForEach-Object {Join-Path "$ScriptDir\src\IO.Swagger\" $_} +$BinPath = "$ScriptDir\src\IO.Swagger\Bin" + +Start-Process -FilePath "$ClientPath\build.bat" -WorkingDirectory $ClientPath -Wait -NoNewWindow + +if (!(Test-Path "$ScriptDir\src\IO.Swagger\Bin" -PathType Container)) { + New-Item "$ScriptDir\src\IO.Swagger\Bin" -ItemType Directory > $null +} + +Copy-Item "$ClientPath\bin\*.dll" $BinPath + +$Manifest = @{ + Path = "$ScriptDir\src\IO.Swagger\IO.Swagger.psd1" + + Author = 'Swagger Codegen Team' + CompanyName = 'swagger.io' + Description = 'IO.Swagger - the PowerShell module for Swagger Petstore' + + RootModule = 'IO.Swagger.psm1' + Guid = 'a27b908d-2a20-467f-bc32-af6f3a654ac5' # Has to be static, otherwise each new build will be considered different module + + PowerShellVersion = '3.0' + + RequiredAssemblies = Get-ChildItem "$BinPath\*.dll" | ForEach-Object { + Join-Path $_.Directory.Name $_.Name + } + + FunctionsToExport = $FunctionPath | Get-ChildItem -Filter *.ps1 | Get-FunctionsToExport + + VariablesToExport = @() + AliasesToExport = @() + CmdletsToExport = @() + + # Should we use prefix to prevent command name collisions? + # https://www.sapien.com/blog/2016/02/15/use-prefixes-to-prevent-command-name-collision/ + # + # Kirk Munro recommends against it: + # https://www.sapien.com/blog/2016/02/15/use-prefixes-to-prevent-command-name-collision/#comment-20820 + # + # If not, we'd need to generate functions name with prefix. + # + # DefaultCommandPrefix = 'PetStore' +} + +New-ModuleManifest @Manifest diff --git a/samples/client/petstore/powershell/README.md b/samples/client/petstore/powershell/README.md new file mode 100644 index 00000000000..a1692f7982e --- /dev/null +++ b/samples/client/petstore/powershell/README.md @@ -0,0 +1,101 @@ +# IO.Swagger - the PowerShell module for the Swagger Petstore + +This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + +This PowerShell module is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: 1.0.0 +- SDK version: +- Build date: 2017-06-09T17:28:25.415+04:00 +- Build package: io.swagger.codegen.languages.PowerShellClientCodegen + + +## Frameworks supported +- .NET 4.0 or later +- PowerShell 3.0 or later + + +## Dependencies +- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later +- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later + +The DLLs included in the package may not be the latest version. We recommend using [NuGet] (https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: +``` +Install-Package RestSharp +Install-Package Newtonsoft.Json +``` + +NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) + + +## Installation +Run the following command to generate the DLL +- [Windows] `Build.ps1` + +Then import module from the .\src\IO.Swagger folder: +```powershell +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; +``` + + +## Documentation for API Endpoints + +All URIs are relative to *http://petstore.swagger.io/v2* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*PetApi* | [**AddPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store +*PetApi* | [**DeletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet +*PetApi* | [**FindPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status +*PetApi* | [**FindPetsByTags**](docs/PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags +*PetApi* | [**GetPetById**](docs/PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID +*PetApi* | [**UpdatePet**](docs/PetApi.md#updatepet) | **PUT** /pet | Update an existing pet +*PetApi* | [**UpdatePetWithForm**](docs/PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data +*PetApi* | [**UploadFile**](docs/PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image +*StoreApi* | [**DeleteOrder**](docs/StoreApi.md#deleteorder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID +*StoreApi* | [**GetInventory**](docs/StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status +*StoreApi* | [**GetOrderById**](docs/StoreApi.md#getorderbyid) | **GET** /store/order/{orderId} | Find purchase order by ID +*StoreApi* | [**PlaceOrder**](docs/StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet +*UserApi* | [**CreateUser**](docs/UserApi.md#createuser) | **POST** /user | Create user +*UserApi* | [**CreateUsersWithArrayInput**](docs/UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array +*UserApi* | [**CreateUsersWithListInput**](docs/UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array +*UserApi* | [**DeleteUser**](docs/UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user +*UserApi* | [**GetUserByName**](docs/UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name +*UserApi* | [**LoginUser**](docs/UserApi.md#loginuser) | **GET** /user/login | Logs user into the system +*UserApi* | [**LogoutUser**](docs/UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session +*UserApi* | [**UpdateUser**](docs/UserApi.md#updateuser) | **PUT** /user/{username} | Updated user + + + +## Documentation for Models + + - [IO.Swagger\Model.ApiResponse](docs/ApiResponse.md) + - [IO.Swagger\Model.Category](docs/Category.md) + - [IO.Swagger\Model.Order](docs/Order.md) + - [IO.Swagger\Model.Pet](docs/Pet.md) + - [IO.Swagger\Model.Tag](docs/Tag.md) + - [IO.Swagger\Model.User](docs/User.md) + + + +## Documentation for Authorization + + +### api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + + +### petstore_auth + +- **Type**: OAuth +- **Flow**: implicit +- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog +- **Scopes**: + - write:pets: modify pets in your account + - read:pets: read your pets + diff --git a/samples/client/petstore/powershell/docs/ApiResponse.md b/samples/client/petstore/powershell/docs/ApiResponse.md new file mode 100644 index 00000000000..e7c75f7167e --- /dev/null +++ b/samples/client/petstore/powershell/docs/ApiResponse.md @@ -0,0 +1,11 @@ +# IO.Swagger.IO.Swagger\Model.ApiResponse +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **Int32** | | [optional] [default to null] +**type** | **String** | | [optional] [default to null] +**message** | **String** | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/Category.md b/samples/client/petstore/powershell/docs/Category.md new file mode 100644 index 00000000000..5d513c3b8ec --- /dev/null +++ b/samples/client/petstore/powershell/docs/Category.md @@ -0,0 +1,10 @@ +# IO.Swagger.IO.Swagger\Model.Category +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Int64** | | [optional] [default to null] +**name** | **String** | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/Order.md b/samples/client/petstore/powershell/docs/Order.md new file mode 100644 index 00000000000..468f34d4aca --- /dev/null +++ b/samples/client/petstore/powershell/docs/Order.md @@ -0,0 +1,14 @@ +# IO.Swagger.IO.Swagger\Model.Order +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Int64** | | [optional] [default to null] +**petId** | **Int64** | | [optional] [default to null] +**quantity** | **Int32** | | [optional] [default to null] +**shipDate** | **System.DateTime** | | [optional] [default to null] +**status** | **String** | Order Status | [optional] [default to null] +**complete** | **Boolean** | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/Pet.md b/samples/client/petstore/powershell/docs/Pet.md new file mode 100644 index 00000000000..08ddad43814 --- /dev/null +++ b/samples/client/petstore/powershell/docs/Pet.md @@ -0,0 +1,14 @@ +# IO.Swagger.IO.Swagger\Model.Pet +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Int64** | | [optional] [default to null] +**category** | [**IO.Swagger.Model.Category**](Category.md) | | [optional] [default to null] +**name** | **String** | | [default to null] +**photoUrls** | **String** | | [default to null] +**tags** | [**IO.Swagger.Model.Tag**](Tag.md) | | [optional] [default to null] +**status** | **String** | pet status in the store | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/PetApi.md b/samples/client/petstore/powershell/docs/PetApi.md new file mode 100644 index 00000000000..c95dad72b1d --- /dev/null +++ b/samples/client/petstore/powershell/docs/PetApi.md @@ -0,0 +1,536 @@ +# IO.Swagger.IO.Swagger\API.PetApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**AddPet**](PetApi.md#addpet) | **POST** /pet | Add a new pet to the store +[**DeletePet**](PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet +[**FindPetsByStatus**](PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status +[**FindPetsByTags**](PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags +[**GetPetById**](PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID +[**UpdatePet**](PetApi.md#updatepet) | **PUT** /pet | Update an existing pet +[**UpdatePetWithForm**](PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data +[**UploadFile**](PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image + + + +# **AddPet** +> void AddPet (Pet body) + +Add a new pet to the store + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class AddPetExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var body = new Pet(); // Pet | Pet object that needs to be added to the store + + try + { + // Add a new pet to the store + apiInstance.AddPet(body); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.AddPet: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: application/json, application/xml + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **DeletePet** +> void DeletePet (Int64 petId, String apiKey) + +Deletes a pet + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class DeletePetExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // Int64 | Pet id to delete + var apiKey = apiKey_example; // String | (optional) + + try + { + // Deletes a pet + apiInstance.DeletePet(petId, apiKey); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.DeletePet: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **Int64**| Pet id to delete | + **apiKey** | **String**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FindPetsByStatus** +> IO.Swagger.Model.Pet FindPetsByStatus (String status) + +Finds Pets by status + +Multiple status values can be provided with comma separated strings + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class FindPetsByStatusExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var status = new String(); // String | Status values that need to be considered for filter + + try + { + // Finds Pets by status + IO.Swagger.Model.Pet result = apiInstance.FindPetsByStatus(status); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.FindPetsByStatus: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **status** | [**String**](String.md)| Status values that need to be considered for filter | + +### Return type + +[**IO.Swagger.Model.Pet**](Pet.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **FindPetsByTags** +> IO.Swagger.Model.Pet FindPetsByTags (String tags) + +Finds Pets by tags + +Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class FindPetsByTagsExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var tags = new String(); // String | Tags to filter by + + try + { + // Finds Pets by tags + IO.Swagger.Model.Pet result = apiInstance.FindPetsByTags(tags); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.FindPetsByTags: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **tags** | [**String**](String.md)| Tags to filter by | + +### Return type + +[**IO.Swagger.Model.Pet**](Pet.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetPetById** +> IO.Swagger.Model.Pet GetPetById (Int64 petId) + +Find pet by ID + +Returns a single pet + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class GetPetByIdExample + { + public void main() + { + // Configure API key authorization: api_key + Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.ApiKeyPrefix.Add("api_key", "Bearer"); + + var apiInstance = new PetApi(); + var petId = 789; // Int64 | ID of pet to return + + try + { + // Find pet by ID + IO.Swagger.Model.Pet result = apiInstance.GetPetById(petId); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.GetPetById: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **Int64**| ID of pet to return | + +### Return type + +[**IO.Swagger.Model.Pet**](Pet.md) + +### Authorization + +[api_key](../README.md#api_key) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UpdatePet** +> void UpdatePet (Pet body) + +Update an existing pet + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class UpdatePetExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var body = new Pet(); // Pet | Pet object that needs to be added to the store + + try + { + // Update an existing pet + apiInstance.UpdatePet(body); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UpdatePet: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: application/json, application/xml + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UpdatePetWithForm** +> void UpdatePetWithForm (Int64 petId, String name, String status) + +Updates a pet in the store with form data + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class UpdatePetWithFormExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // Int64 | ID of pet that needs to be updated + var name = name_example; // String | Updated name of the pet (optional) + var status = status_example; // String | Updated status of the pet (optional) + + try + { + // Updates a pet in the store with form data + apiInstance.UpdatePetWithForm(petId, name, status); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UpdatePetWithForm: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **Int64**| ID of pet that needs to be updated | + **name** | **String**| Updated name of the pet | [optional] + **status** | **String**| Updated status of the pet | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UploadFile** +> IO.Swagger.Model.ApiResponse UploadFile (Int64 petId, String additionalMetadata, String file) + +uploads an image + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class UploadFileExample + { + public void main() + { + // Configure OAuth2 access token for authorization: petstore_auth + Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; + + var apiInstance = new PetApi(); + var petId = 789; // Int64 | ID of pet to update + var additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server (optional) + var file = new String(); // String | file to upload (optional) + + try + { + // uploads an image + IO.Swagger.Model.ApiResponse result = apiInstance.UploadFile(petId, additionalMetadata, file); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling PetApi.UploadFile: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **Int64**| ID of pet to update | + **additionalMetadata** | **String**| Additional data to pass to server | [optional] + **file** | **String**| file to upload | [optional] + +### Return type + +[**IO.Swagger.Model.ApiResponse**](ApiResponse.md) + +### Authorization + +[petstore_auth](../README.md#petstore_auth) + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/StoreApi.md b/samples/client/petstore/powershell/docs/StoreApi.md new file mode 100644 index 00000000000..cd86bdfa903 --- /dev/null +++ b/samples/client/petstore/powershell/docs/StoreApi.md @@ -0,0 +1,256 @@ +# IO.Swagger.IO.Swagger\API.StoreApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**DeleteOrder**](StoreApi.md#deleteorder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID +[**GetInventory**](StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status +[**GetOrderById**](StoreApi.md#getorderbyid) | **GET** /store/order/{orderId} | Find purchase order by ID +[**PlaceOrder**](StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet + + + +# **DeleteOrder** +> void DeleteOrder (String orderId) + +Delete purchase order by ID + +For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class DeleteOrderExample + { + public void main() + { + var apiInstance = new StoreApi(); + var orderId = orderId_example; // String | ID of the order that needs to be deleted + + try + { + // Delete purchase order by ID + apiInstance.DeleteOrder(orderId); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.DeleteOrder: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **orderId** | **String**| ID of the order that needs to be deleted | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetInventory** +> {String, Int32} GetInventory () + +Returns pet inventories by status + +Returns a map of status codes to quantities + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class GetInventoryExample + { + public void main() + { + // Configure API key authorization: api_key + Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY"); + // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed + // Configuration.Default.ApiKeyPrefix.Add("api_key", "Bearer"); + + var apiInstance = new StoreApi(); + + try + { + // Returns pet inventories by status + {String, Int32} result = apiInstance.GetInventory(); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.GetInventory: " + e.Message ); + } + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**{String, Int32}**](Map.md) + +### Authorization + +[api_key](../README.md#api_key) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetOrderById** +> IO.Swagger.Model.Order GetOrderById (Int64 orderId) + +Find purchase order by ID + +For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class GetOrderByIdExample + { + public void main() + { + var apiInstance = new StoreApi(); + var orderId = 789; // Int64 | ID of pet that needs to be fetched + + try + { + // Find purchase order by ID + IO.Swagger.Model.Order result = apiInstance.GetOrderById(orderId); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.GetOrderById: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **orderId** | **Int64**| ID of pet that needs to be fetched | + +### Return type + +[**IO.Swagger.Model.Order**](Order.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **PlaceOrder** +> IO.Swagger.Model.Order PlaceOrder (Order body) + +Place an order for a pet + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class PlaceOrderExample + { + public void main() + { + var apiInstance = new StoreApi(); + var body = new Order(); // Order | order placed for purchasing the pet + + try + { + // Place an order for a pet + IO.Swagger.Model.Order result = apiInstance.PlaceOrder(body); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling StoreApi.PlaceOrder: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**Order**](Order.md)| order placed for purchasing the pet | + +### Return type + +[**IO.Swagger.Model.Order**](Order.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/Tag.md b/samples/client/petstore/powershell/docs/Tag.md new file mode 100644 index 00000000000..f63e85100a6 --- /dev/null +++ b/samples/client/petstore/powershell/docs/Tag.md @@ -0,0 +1,10 @@ +# IO.Swagger.IO.Swagger\Model.Tag +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Int64** | | [optional] [default to null] +**name** | **String** | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/User.md b/samples/client/petstore/powershell/docs/User.md new file mode 100644 index 00000000000..64762d009f5 --- /dev/null +++ b/samples/client/petstore/powershell/docs/User.md @@ -0,0 +1,16 @@ +# IO.Swagger.IO.Swagger\Model.User +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Int64** | | [optional] [default to null] +**username** | **String** | | [optional] [default to null] +**firstName** | **String** | | [optional] [default to null] +**lastName** | **String** | | [optional] [default to null] +**email** | **String** | | [optional] [default to null] +**password** | **String** | | [optional] [default to null] +**phone** | **String** | | [optional] [default to null] +**userStatus** | **Int32** | User Status | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/docs/UserApi.md b/samples/client/petstore/powershell/docs/UserApi.md new file mode 100644 index 00000000000..03eb1b3260b --- /dev/null +++ b/samples/client/petstore/powershell/docs/UserApi.md @@ -0,0 +1,498 @@ +# IO.Swagger.IO.Swagger\API.UserApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**CreateUser**](UserApi.md#createuser) | **POST** /user | Create user +[**CreateUsersWithArrayInput**](UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array +[**CreateUsersWithListInput**](UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array +[**DeleteUser**](UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user +[**GetUserByName**](UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name +[**LoginUser**](UserApi.md#loginuser) | **GET** /user/login | Logs user into the system +[**LogoutUser**](UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session +[**UpdateUser**](UserApi.md#updateuser) | **PUT** /user/{username} | Updated user + + + +# **CreateUser** +> void CreateUser (User body) + +Create user + +This can only be done by the logged in user. + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class CreateUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var body = new User(); // User | Created user object + + try + { + // Create user + apiInstance.CreateUser(body); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.CreateUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**User**](User.md)| Created user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **CreateUsersWithArrayInput** +> void CreateUsersWithArrayInput (IO.Swagger.Model.User body) + +Creates list of users with given input array + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class CreateUsersWithArrayInputExample + { + public void main() + { + var apiInstance = new UserApi(); + var body = new IO.Swagger.Model.User(); // IO.Swagger.Model.User | List of user object + + try + { + // Creates list of users with given input array + apiInstance.CreateUsersWithArrayInput(body); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.CreateUsersWithArrayInput: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**IO.Swagger.Model.User**](User.md)| List of user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **CreateUsersWithListInput** +> void CreateUsersWithListInput (IO.Swagger.Model.User body) + +Creates list of users with given input array + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class CreateUsersWithListInputExample + { + public void main() + { + var apiInstance = new UserApi(); + var body = new IO.Swagger.Model.User(); // IO.Swagger.Model.User | List of user object + + try + { + // Creates list of users with given input array + apiInstance.CreateUsersWithListInput(body); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.CreateUsersWithListInput: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**IO.Swagger.Model.User**](User.md)| List of user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **DeleteUser** +> void DeleteUser (String username) + +Delete user + +This can only be done by the logged in user. + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class DeleteUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // String | The name that needs to be deleted + + try + { + // Delete user + apiInstance.DeleteUser(username); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.DeleteUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **String**| The name that needs to be deleted | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **GetUserByName** +> IO.Swagger.Model.User GetUserByName (String username) + +Get user by user name + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class GetUserByNameExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // String | The name that needs to be fetched. Use user1 for testing. + + try + { + // Get user by user name + IO.Swagger.Model.User result = apiInstance.GetUserByName(username); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.GetUserByName: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **String**| The name that needs to be fetched. Use user1 for testing. | + +### Return type + +[**IO.Swagger.Model.User**](User.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **LoginUser** +> String LoginUser (String username, String password) + +Logs user into the system + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class LoginUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // String | The user name for login + var password = password_example; // String | The password for login in clear text + + try + { + // Logs user into the system + String result = apiInstance.LoginUser(username, password); + Debug.WriteLine(result); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.LoginUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **String**| The user name for login | + **password** | **String**| The password for login in clear text | + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **LogoutUser** +> void LogoutUser () + +Logs out current logged in user session + + + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class LogoutUserExample + { + public void main() + { + var apiInstance = new UserApi(); + + try + { + // Logs out current logged in user session + apiInstance.LogoutUser(); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.LogoutUser: " + e.Message ); + } + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +# **UpdateUser** +> void UpdateUser (String username, User body) + +Updated user + +This can only be done by the logged in user. + +### Example +```csharp +using System; +using System.Diagnostics; +using IO.Swagger.IO.Swagger\API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger\Model; + +namespace Example +{ + public class UpdateUserExample + { + public void main() + { + var apiInstance = new UserApi(); + var username = username_example; // String | name that need to be deleted + var body = new User(); // User | Updated user object + + try + { + // Updated user + apiInstance.UpdateUser(username, body); + } + catch (Exception e) + { + Debug.Print("Exception when calling UserApi.UpdateUser: " + e.Message ); + } + } + } +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **String**| name that need to be deleted | + **body** | [**User**](User.md)| Updated user object | + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/powershell/src/IO.Swagger/API/PetApi.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/API/PetApi.ps1 new file mode 100644 index 00000000000..64f23ec9d6b --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/API/PetApi.ps1 @@ -0,0 +1,164 @@ +function Invoke-PetApiAddPet { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.Pet] + ${body} + ) + + Process { + 'Calling method: PetApi-AddPet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.AddPet( + ${body} + ) + } +} + +function Invoke-PetApiDeletePet { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${apiKey} + ) + + Process { + 'Calling method: PetApi-DeletePet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.DeletePet( + ${petId}, + ${apiKey} + ) + } +} + +function Invoke-PetApiFindPetsByStatus { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${status} + ) + + Process { + 'Calling method: PetApi-FindPetsByStatus' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.FindPetsByStatus( + ${status} + ) + } +} + +function Invoke-PetApiFindPetsByTags { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${tags} + ) + + Process { + 'Calling method: PetApi-FindPetsByTags' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.FindPetsByTags( + ${tags} + ) + } +} + +function Invoke-PetApiGetPetById { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId} + ) + + Process { + 'Calling method: PetApi-GetPetById' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.GetPetById( + ${petId} + ) + } +} + +function Invoke-PetApiUpdatePet { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.Pet] + ${body} + ) + + Process { + 'Calling method: PetApi-UpdatePet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.UpdatePet( + ${body} + ) + } +} + +function Invoke-PetApiUpdatePetWithForm { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${name}, + [Parameter(Position = 3, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${status} + ) + + Process { + 'Calling method: PetApi-UpdatePetWithForm' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.UpdatePetWithForm( + ${petId}, + ${name}, + ${status} + ) + } +} + +function Invoke-PetApiUploadFile { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${additionalMetadata}, + [Parameter(Position = 3, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [IO.Swagger.Model.String] + ${file} + ) + + Process { + 'Calling method: PetApi-UploadFile' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.UploadFile( + ${petId}, + ${additionalMetadata}, + ${file} + ) + } +} + diff --git a/samples/client/petstore/powershell/src/IO.Swagger/API/StoreApi.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/API/StoreApi.ps1 new file mode 100644 index 00000000000..291e1491fd3 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/API/StoreApi.ps1 @@ -0,0 +1,68 @@ +function Invoke-StoreApiDeleteOrder { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${orderId} + ) + + Process { + 'Calling method: StoreApi-DeleteOrder' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.DeleteOrder( + ${orderId} + ) + } +} + +function Invoke-StoreApiGetInventory { + [CmdletBinding()] + Param ( + ) + + Process { + 'Calling method: StoreApi-GetInventory' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.GetInventory( + ) + } +} + +function Invoke-StoreApiGetOrderById { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${orderId} + ) + + Process { + 'Calling method: StoreApi-GetOrderById' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.GetOrderById( + ${orderId} + ) + } +} + +function Invoke-StoreApiPlaceOrder { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.Order] + ${body} + ) + + Process { + 'Calling method: StoreApi-PlaceOrder' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.PlaceOrder( + ${body} + ) + } +} + diff --git a/samples/client/petstore/powershell/src/IO.Swagger/API/UserApi.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/API/UserApi.ps1 new file mode 100644 index 00000000000..8c46dad120d --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/API/UserApi.ps1 @@ -0,0 +1,148 @@ +function Invoke-UserApiCreateUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User] + ${body} + ) + + Process { + 'Calling method: UserApi-CreateUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.CreateUser( + ${body} + ) + } +} + +function Invoke-UserApiCreateUsersWithArrayInput { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User] + ${body} + ) + + Process { + 'Calling method: UserApi-CreateUsersWithArrayInput' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.CreateUsersWithArrayInput( + ${body} + ) + } +} + +function Invoke-UserApiCreateUsersWithListInput { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User] + ${body} + ) + + Process { + 'Calling method: UserApi-CreateUsersWithListInput' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.CreateUsersWithListInput( + ${body} + ) + } +} + +function Invoke-UserApiDeleteUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username} + ) + + Process { + 'Calling method: UserApi-DeleteUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.DeleteUser( + ${username} + ) + } +} + +function Invoke-UserApiGetUserByName { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username} + ) + + Process { + 'Calling method: UserApi-GetUserByName' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.GetUserByName( + ${username} + ) + } +} + +function Invoke-UserApiLoginUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${password} + ) + + Process { + 'Calling method: UserApi-LoginUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.LoginUser( + ${username}, + ${password} + ) + } +} + +function Invoke-UserApiLogoutUser { + [CmdletBinding()] + Param ( + ) + + Process { + 'Calling method: UserApi-LogoutUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.LogoutUser( + ) + } +} + +function Invoke-UserApiUpdateUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User] + ${body} + ) + + Process { + 'Calling method: UserApi-UpdateUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.UpdateUser( + ${username}, + ${body} + ) + } +} + diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Bin/IO.Swagger.dll b/samples/client/petstore/powershell/src/IO.Swagger/Bin/IO.Swagger.dll new file mode 100644 index 0000000000000000000000000000000000000000..a76f2b990b0069a2da6cb0bb470770436c9b4e58 GIT binary patch literal 222720 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 J$p7~o_+RXfXsQ4J literal 0 HcmV?d00001 diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Bin/Newtonsoft.Json.dll b/samples/client/petstore/powershell/src/IO.Swagger/Bin/Newtonsoft.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..b7ef414f3092e49732ed8e74e214a54d533dce01 GIT binary patch literal 522752 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

gT0l&S8^JF|+ms(vVEh`&28#*6k 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%0ADZW1&C}=6{`-CM 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 UfQN`Z?|xnr{r`Xd-=o0)0_Pd&8~^|S literal 0 HcmV?d00001 diff --git a/samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psd1 b/samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psd1 new file mode 100644 index 0000000000000000000000000000000000000000..49b6712c5e1d945508864cbfac9f0b4b22d42d54 GIT binary patch literal 9840 zcmeI2+fQ3Z5XSepQvU}_JV2!4hUV5(suUM;p&|+5lJ=o5#@N&i*e*74P?dkZ?f2X9 zu;*%QAZk@rRyg)KyR$Rjd^0<S63JG>3eupg$HaiULGqgH29UG_`e9mFSX$?9sIMmP$W;X7UPGaF$u z>d}po26}#=@onj2vgSz~Y7Hdb4^O4h{qR_SztMFgJju*P!n5#4yyMdLLq}To!zfyM zmP5j0(y4w;!mpag-@Zna@oh$Z_B3~>QF&i{ zukqD5H>L4d+HA}acYEGNtjAglOd9%kp;1TiZbSEa1znOgrbl-DqAb&9BO+{m_Eq<_ z%19p&b1(18zt81w5HM}VGhdje&omyS`qB;ztHw71Yd#BW;a<*b+hI%hFNA)enwr%TZ%%bh8WOSR(hR1Z2k<%;|MS>x#pfxHcJN?vm*=bd0Q(H z8}M`_*+WS;zIu+#XN^2t>((?Bsxos!95sn(v#a%{(WZTQf_TC1Vs*XU|geu|@E;8bJk^nw{DaU{C4CQ;sx-xfiu%G&De_MjrW zC8p;+x|r_7y6vOO>%CHg$g7#mq?!3W&&$u@iO*?GwMTAZ6P6Q?Adk<;D$Vdl`_X~E zz0ecOT~j?h5AT=e6uIKyYDXt};kdIBuCoiW|G?=FT8&tTsa{Kw+v?-cqWit1kTDw? zncYX(#|M&lDVux;-qO8^EF?0^_T3$_u6IZ4oyB}Xm2oNyiO>sOsRM~oc4Km#?GbCL z?smdn%*_cYzFil;|30kEl0`7x6%N#d>>n_ZDw;~N6S)IN*bgpr2h7&wKRnwFU+LG+ zsyZIWZ!KYXtnUwRfS&WCtVyd@kLp~K_8&M657@WaGpNJ(MwJQYsWY(ED?#=HtI(W1 zCt}P{|T+rZ?OYg%k^a| z`l~Bls7?ElG2dpaY0F2(=G*FB)VW$4^U@E}ZV-N{?8TbWh<$xEvS>BPS!6@I2(fWxEANYHk~^Bt9UNZ_}o8FVchk;jQaNJ}{b29Z;oE1k#^ zIt02)%x``e?Z%A2@eZ?yf z_-A<=8_#F=?evEoi?P(@;D@E&Z#R@XIQ2LdE=2CJq=585--|1Y(=r!@44*Q>j@e?#spX-U7n{vPXNcRat=kEWh;9I|s@L}TuU)1NvWUPup6H;H5A_e*7G>!(5WdcCS7 z90>7~tJ$~Hkkh}(Oh2^SmbTYxbtr_7r3I|HJG9DD>EGa_XQ0J2^NbC4_|#@Cj}x9E zZo4x^WjXRT#+B`O#7L0^#kq#FF~y<_$(MJgo5@dF&G%(dyItYLSy)%+#pH`**Yc_nvB(Fl4M+W@o0x z_AHS`ZO&MG5_7;Zk!scZdMTEY>}<|VcP+0wel8_h0XF{qieE`Rau|BVpU2y9jLROD0RtxWd&j+$vKQR_?zMM z2FGXkb-r$}*4W9L$|IrZ?^XN^BWcN*>oEMLahw6vBWGuMKJIpUa^}HFoyC&nYVP3vKPr zr$XD_<8!C4v!oPD{;tf<$nZ$^)Xs9wbtiY^owu_L0w#3Pwv%$@SG^u&UE+whCELo% keqOkqJFn#b2M`^uzp=Ay<)#qj&7WD5ol(Z<(-lkp2Fi^uSpWb4 literal 0 HcmV?d00001 diff --git a/samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psm1 b/samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psm1 new file mode 100644 index 00000000000..9b253e2fcee --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/IO.Swagger.psm1 @@ -0,0 +1,29 @@ +#region Import functions + +'API', 'Model', 'Private' | Get-ChildItem -Path { + Join-Path $PSScriptRoot $_ +} -Filter '*.ps1' | ForEach-Object { + Write-Verbose "Importing file: $($_.BaseName)" + try { + . $_.FullName + } catch { + Write-Verbose "Can't import function!" + } +} + +#endregion + + +#region Initialize APIs + +'Creating object: IO.Swagger.Api.PetApi' | Write-Verbose +$Script:PetApi= New-Object -TypeName IO.Swagger.Api.PetApi -ArgumentList @($null) + +'Creating object: IO.Swagger.Api.StoreApi' | Write-Verbose +$Script:StoreApi= New-Object -TypeName IO.Swagger.Api.StoreApi -ArgumentList @($null) + +'Creating object: IO.Swagger.Api.UserApi' | Write-Verbose +$Script:UserApi= New-Object -TypeName IO.Swagger.Api.UserApi -ArgumentList @($null) + + +#endregion diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Model/New-ApiResponse.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-ApiResponse.ps1 new file mode 100644 index 00000000000..f5fcdd09b71 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-ApiResponse.ps1 @@ -0,0 +1,25 @@ +function New-ApiResponse { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int32]] + ${code}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${type}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${message} + ) + + Process { + 'Creating object: IO.Swagger.Model.ApiResponse' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.ApiResponse -ArgumentList @( + ${code}, + ${type}, + ${message} + ) + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Category.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Category.ps1 new file mode 100644 index 00000000000..9009a971945 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Category.ps1 @@ -0,0 +1,21 @@ +function New-Category { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${name} + ) + + Process { + 'Creating object: IO.Swagger.Model.Category' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Category -ArgumentList @( + ${id}, + ${name} + ) + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Order.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Order.ps1 new file mode 100644 index 00000000000..199952c4e18 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Order.ps1 @@ -0,0 +1,37 @@ +function New-Order { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${petId}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int32]] + ${quantity}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[System.DateTime]] + ${shipDate}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${status}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Boolean]] + ${complete} + ) + + Process { + 'Creating object: IO.Swagger.Model.Order' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Order -ArgumentList @( + ${id}, + ${petId}, + ${quantity}, + ${shipDate}, + ${status}, + ${complete} + ) + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Pet.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Pet.ps1 new file mode 100644 index 00000000000..5818fdaa591 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Pet.ps1 @@ -0,0 +1,37 @@ +function New-Pet { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[IO.Swagger.Model.Category]] + ${category}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${name}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [[String]] + ${photoUrls}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[IO.Swagger.Model.Tag]] + ${tags}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${status} + ) + + Process { + 'Creating object: IO.Swagger.Model.Pet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Pet -ArgumentList @( + ${id}, + ${category}, + ${name}, + ${photoUrls}, + ${tags}, + ${status} + ) + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Tag.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Tag.ps1 new file mode 100644 index 00000000000..2d333643afe --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-Tag.ps1 @@ -0,0 +1,21 @@ +function New-Tag { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${name} + ) + + Process { + 'Creating object: IO.Swagger.Model.Tag' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Tag -ArgumentList @( + ${id}, + ${name} + ) + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Model/New-User.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-User.ps1 new file mode 100644 index 00000000000..011ffdef5cb --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Model/New-User.ps1 @@ -0,0 +1,45 @@ +function New-User { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${username}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${firstName}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${lastName}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${email}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${password}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${phone}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int32]] + ${userStatus} + ) + + Process { + 'Creating object: IO.Swagger.Model.User' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.User -ArgumentList @( + ${id}, + ${username}, + ${firstName}, + ${lastName}, + ${email}, + ${password}, + ${phone}, + ${userStatus} + ) + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Private/Get-CommonParameters.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Private/Get-CommonParameters.ps1 new file mode 100644 index 00000000000..31a0a1ff3af --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Private/Get-CommonParameters.ps1 @@ -0,0 +1,14 @@ +<# +.Synopsis + Helper function to get common parameters (Verbose, Debug, etc.) +.Example + Get-CommonParameters +#> +function Get-CommonParameters { + function tmp { + [CmdletBinding()] + Param () + } + + (Get-Command -Name tmp -CommandType Function).Parameters.Keys +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/Private/Out-DebugParameter.ps1 b/samples/client/petstore/powershell/src/IO.Swagger/Private/Out-DebugParameter.ps1 new file mode 100644 index 00000000000..ca18c391cc1 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/Private/Out-DebugParameter.ps1 @@ -0,0 +1,37 @@ +<# +.Synopsis + Helper function to format debug parameter output. +.Example + $PSBoundParameters | Out-DebugParameter | Write-Debug +#> +function Out-DebugParameter { + [CmdletBinding()] + Param ( + [Parameter(ValueFromPipeline = $true, Mandatory = $true)] + [AllowEmptyCollection()] + $InputObject + ) + + Begin { + $CommonParameters = Get-CommonParameters + } + + Process { + $InputObject.GetEnumerator() | Where-Object { + $CommonParameters -notcontains $_.Key + } | Format-Table -AutoSize -Property ( + @{ + Name = 'Parameter' + Expression = {$_.Key} + }, + @{ + Name = 'Value' + Expression = {$_.Value} + } + ) | Out-String -Stream | ForEach-Object { + if ($_.Trim()) { + $_ + } + } + } +} diff --git a/samples/client/petstore/powershell/src/IO.Swagger/en-US/about_IO.Swagger.help.txt b/samples/client/petstore/powershell/src/IO.Swagger/en-US/about_IO.Swagger.help.txt new file mode 100644 index 00000000000..7aa65057cc2 --- /dev/null +++ b/samples/client/petstore/powershell/src/IO.Swagger/en-US/about_IO.Swagger.help.txt @@ -0,0 +1,20 @@ +PSTOPIC + about_IO.Swagger + +SHORT DESCRIPTION + IO.Swagger - the PowerShell module for the Swagger Petstore + +LONG DESCRIPTION + This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + + This PowerShell module is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + + - API version: 1.0.0 + - SDK version: + - Build date: 2017-06-09T17:28:25.415+04:00 + - Build package: io.swagger.codegen.languages.PowerShellClientCodegen + + Frameworks supported: + + * PowerShell 3.0+ + * .NET 4.0 or later diff --git a/samples/client/petstore/powershell_test/.swagger-codegen-ignore b/samples/client/petstore/powershell_test/.swagger-codegen-ignore new file mode 100644 index 00000000000..c5fa491b4c5 --- /dev/null +++ b/samples/client/petstore/powershell_test/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/client/petstore/powershell_test/.swagger-codegen/VERSION b/samples/client/petstore/powershell_test/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/powershell_test/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/powershell_test/Build.ps1 b/samples/client/petstore/powershell_test/Build.ps1 new file mode 100644 index 00000000000..93f9996115f --- /dev/null +++ b/samples/client/petstore/powershell_test/Build.ps1 @@ -0,0 +1,86 @@ +function Get-FunctionsToExport { + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [Alias('FullName')] + $Path + ) + + Process { + $Token = $null + $ParserErr = $null + + $Ast = [System.Management.Automation.Language.Parser]::ParseFile( + $Path, + [ref]$Token, + [ref]$ParserErr + ) + + if ($ParserErr) { + throw $ParserErr + } else { + foreach ($name in 'Begin', 'Process', 'End') { + foreach ($Statement in $Ast."${name}Block".Statements) { + if ( + [String]::IsNullOrWhiteSpace($Statement.Name) -or + $Statement.Extent.ToString() -notmatch + ('function\W+{0}' -f $Statement.Name) + ) { + continue + } + + $Statement.Name + } + } + } + } +} + +$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path +$ClientPath = ("$ScriptDir\..\..\petstore\csharp\SwaggerClient" | Resolve-Path).ProviderPath +$FunctionPath = 'API', 'Model' | ForEach-Object {Join-Path "$ScriptDir\src\IO.Swagger\" $_} +$BinPath = "$ScriptDir\src\IO.Swagger\Bin" + +Start-Process -FilePath "$ClientPath\build.bat" -WorkingDirectory $ClientPath -Wait -NoNewWindow + +if (!(Test-Path "$ScriptDir\src\IO.Swagger\Bin" -PathType Container)) { + New-Item "$ScriptDir\src\IO.Swagger\Bin" -ItemType Directory > $null +} + +Copy-Item "$ClientPath\bin\*.dll" $BinPath + +$Manifest = @{ + Path = "$ScriptDir\src\IO.Swagger\IO.Swagger.psd1" + + Author = 'Swagger Codegen Team' + CompanyName = 'swagger.io' + Description = 'IO.Swagger - the PowerShell module for Swagger Petstore' + + RootModule = 'IO.Swagger.psm1' + Guid = 'a27b908d-2a20-467f-bc32-af6f3a654ac5' # Has to be static, otherwise each new build will be considered different module + + PowerShellVersion = '3.0' + + RequiredAssemblies = Get-ChildItem "$BinPath\*.dll" | ForEach-Object { + Join-Path $_.Directory.Name $_.Name + } + + FunctionsToExport = $FunctionPath | Get-ChildItem -Filter *.ps1 | Get-FunctionsToExport + + VariablesToExport = @() + AliasesToExport = @() + CmdletsToExport = @() + + # Should we use prefix to prevent command name collisions? + # https://www.sapien.com/blog/2016/02/15/use-prefixes-to-prevent-command-name-collision/ + # + # Kirk Munro recommends against it: + # https://www.sapien.com/blog/2016/02/15/use-prefixes-to-prevent-command-name-collision/#comment-20820 + # + # If not, we'd need to generate functions name with prefix. + # + # DefaultCommandPrefix = 'PetStore' +} + +New-ModuleManifest @Manifest diff --git a/samples/client/petstore/powershell_test/README.md b/samples/client/petstore/powershell_test/README.md new file mode 100644 index 00000000000..75f5add565a --- /dev/null +++ b/samples/client/petstore/powershell_test/README.md @@ -0,0 +1,101 @@ +# IO.Swagger - the PowerShell module for the Swagger Petstore + +This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + +This PowerShell module is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: 1.0.0 +- SDK version: +- Build date: 2017-06-20T16:12:54.727+08:00 +- Build package: io.swagger.codegen.languages.PowerShellClientCodegen + + +## Frameworks supported +- .NET 4.0 or later +- PowerShell 3.0 or later + + +## Dependencies +- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later +- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later + +The DLLs included in the package may not be the latest version. We recommend using [NuGet] (https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: +``` +Install-Package RestSharp +Install-Package Newtonsoft.Json +``` + +NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) + + +## Installation +Run the following command to generate the DLL +- [Windows] `Build.ps1` + +Then import module from the .\src\IO.Swagger folder: +```powershell +using IO.Swagger.IO.Swagger/API; +using IO.Swagger.Client; +using IO.Swagger.IO.Swagger/Model; +``` + + +## Documentation for API Endpoints + +All URIs are relative to *http://petstore.swagger.io/v2* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*PetApi* | [**AddPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store +*PetApi* | [**DeletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet +*PetApi* | [**FindPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status +*PetApi* | [**FindPetsByTags**](docs/PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags +*PetApi* | [**GetPetById**](docs/PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID +*PetApi* | [**UpdatePet**](docs/PetApi.md#updatepet) | **PUT** /pet | Update an existing pet +*PetApi* | [**UpdatePetWithForm**](docs/PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data +*PetApi* | [**UploadFile**](docs/PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image +*StoreApi* | [**DeleteOrder**](docs/StoreApi.md#deleteorder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID +*StoreApi* | [**GetInventory**](docs/StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status +*StoreApi* | [**GetOrderById**](docs/StoreApi.md#getorderbyid) | **GET** /store/order/{orderId} | Find purchase order by ID +*StoreApi* | [**PlaceOrder**](docs/StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet +*UserApi* | [**CreateUser**](docs/UserApi.md#createuser) | **POST** /user | Create user +*UserApi* | [**CreateUsersWithArrayInput**](docs/UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array +*UserApi* | [**CreateUsersWithListInput**](docs/UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array +*UserApi* | [**DeleteUser**](docs/UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user +*UserApi* | [**GetUserByName**](docs/UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name +*UserApi* | [**LoginUser**](docs/UserApi.md#loginuser) | **GET** /user/login | Logs user into the system +*UserApi* | [**LogoutUser**](docs/UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session +*UserApi* | [**UpdateUser**](docs/UserApi.md#updateuser) | **PUT** /user/{username} | Updated user + + + +## Documentation for Models + + - [IO.Swagger/Model.ApiResponse](docs/ApiResponse.md) + - [IO.Swagger/Model.Category](docs/Category.md) + - [IO.Swagger/Model.Order](docs/Order.md) + - [IO.Swagger/Model.Pet](docs/Pet.md) + - [IO.Swagger/Model.Tag](docs/Tag.md) + - [IO.Swagger/Model.User](docs/User.md) + + + +## Documentation for Authorization + + +### api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + + +### petstore_auth + +- **Type**: OAuth +- **Flow**: implicit +- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog +- **Scopes**: + - write:pets: modify pets in your account + - read:pets: read your pets + diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/API/PetApi.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/API/PetApi.ps1 new file mode 100644 index 00000000000..76897d2b081 --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/API/PetApi.ps1 @@ -0,0 +1,164 @@ +function Invoke-PetApiAddPet { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.Pet] + ${body} + ) + + Process { + 'Calling method: PetApi-AddPet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.AddPet( + ${body} + ) + } +} + +function Invoke-PetApiDeletePet { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId}, + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${apiKey} + ) + + Process { + 'Calling method: PetApi-DeletePet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.DeletePet( + ${petId}, + ${apiKey} + ) + } +} + +function Invoke-PetApiFindPetsByStatus { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String[]] + ${status} + ) + + Process { + 'Calling method: PetApi-FindPetsByStatus' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.FindPetsByStatus( + ${status} + ) + } +} + +function Invoke-PetApiFindPetsByTags { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String[]] + ${tags} + ) + + Process { + 'Calling method: PetApi-FindPetsByTags' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.FindPetsByTags( + ${tags} + ) + } +} + +function Invoke-PetApiGetPetById { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId} + ) + + Process { + 'Calling method: PetApi-GetPetById' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.GetPetById( + ${petId} + ) + } +} + +function Invoke-PetApiUpdatePet { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.Pet] + ${body} + ) + + Process { + 'Calling method: PetApi-UpdatePet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.UpdatePet( + ${body} + ) + } +} + +function Invoke-PetApiUpdatePetWithForm { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId}, + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${name}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${status} + ) + + Process { + 'Calling method: PetApi-UpdatePetWithForm' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.UpdatePetWithForm( + ${petId}, + ${name}, + ${status} + ) + } +} + +function Invoke-PetApiUploadFile { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${petId}, + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${additionalMetadata}, + [Parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] + [String] + ${file} + ) + + Process { + 'Calling method: PetApi-UploadFile' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:PetApi.UploadFile( + ${petId}, + ${additionalMetadata}, + ${file} + ) + } +} + diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/API/StoreApi.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/API/StoreApi.ps1 new file mode 100644 index 00000000000..e1959279f4c --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/API/StoreApi.ps1 @@ -0,0 +1,68 @@ +function Invoke-StoreApiDeleteOrder { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${orderId} + ) + + Process { + 'Calling method: StoreApi-DeleteOrder' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.DeleteOrder( + ${orderId} + ) + } +} + +function Invoke-StoreApiGetInventory { + [CmdletBinding()] + Param ( + ) + + Process { + 'Calling method: StoreApi-GetInventory' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.GetInventory( + ) + } +} + +function Invoke-StoreApiGetOrderById { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int64] + ${orderId} + ) + + Process { + 'Calling method: StoreApi-GetOrderById' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.GetOrderById( + ${orderId} + ) + } +} + +function Invoke-StoreApiPlaceOrder { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.Order] + ${body} + ) + + Process { + 'Calling method: StoreApi-PlaceOrder' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:StoreApi.PlaceOrder( + ${body} + ) + } +} + diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/API/UserApi.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/API/UserApi.ps1 new file mode 100644 index 00000000000..dc47192292d --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/API/UserApi.ps1 @@ -0,0 +1,148 @@ +function Invoke-UserApiCreateUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User] + ${body} + ) + + Process { + 'Calling method: UserApi-CreateUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.CreateUser( + ${body} + ) + } +} + +function Invoke-UserApiCreateUsersWithArrayInput { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User[]] + ${body} + ) + + Process { + 'Calling method: UserApi-CreateUsersWithArrayInput' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.CreateUsersWithArrayInput( + ${body} + ) + } +} + +function Invoke-UserApiCreateUsersWithListInput { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User[]] + ${body} + ) + + Process { + 'Calling method: UserApi-CreateUsersWithListInput' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.CreateUsersWithListInput( + ${body} + ) + } +} + +function Invoke-UserApiDeleteUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username} + ) + + Process { + 'Calling method: UserApi-DeleteUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.DeleteUser( + ${username} + ) + } +} + +function Invoke-UserApiGetUserByName { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username} + ) + + Process { + 'Calling method: UserApi-GetUserByName' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.GetUserByName( + ${username} + ) + } +} + +function Invoke-UserApiLoginUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username}, + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${password} + ) + + Process { + 'Calling method: UserApi-LoginUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.LoginUser( + ${username}, + ${password} + ) + } +} + +function Invoke-UserApiLogoutUser { + [CmdletBinding()] + Param ( + ) + + Process { + 'Calling method: UserApi-LogoutUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.LogoutUser( + ) + } +} + +function Invoke-UserApiUpdateUser { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${username}, + [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [IO.Swagger.Model.User] + ${body} + ) + + Process { + 'Calling method: UserApi-UpdateUser' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + $Script:UserApi.UpdateUser( + ${username}, + ${body} + ) + } +} + diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/IO.Swagger.psm1 b/samples/client/petstore/powershell_test/src/IO.Swagger/IO.Swagger.psm1 new file mode 100644 index 00000000000..9b253e2fcee --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/IO.Swagger.psm1 @@ -0,0 +1,29 @@ +#region Import functions + +'API', 'Model', 'Private' | Get-ChildItem -Path { + Join-Path $PSScriptRoot $_ +} -Filter '*.ps1' | ForEach-Object { + Write-Verbose "Importing file: $($_.BaseName)" + try { + . $_.FullName + } catch { + Write-Verbose "Can't import function!" + } +} + +#endregion + + +#region Initialize APIs + +'Creating object: IO.Swagger.Api.PetApi' | Write-Verbose +$Script:PetApi= New-Object -TypeName IO.Swagger.Api.PetApi -ArgumentList @($null) + +'Creating object: IO.Swagger.Api.StoreApi' | Write-Verbose +$Script:StoreApi= New-Object -TypeName IO.Swagger.Api.StoreApi -ArgumentList @($null) + +'Creating object: IO.Swagger.Api.UserApi' | Write-Verbose +$Script:UserApi= New-Object -TypeName IO.Swagger.Api.UserApi -ArgumentList @($null) + + +#endregion diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-ApiResponse.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-ApiResponse.ps1 new file mode 100644 index 00000000000..f5fcdd09b71 --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-ApiResponse.ps1 @@ -0,0 +1,25 @@ +function New-ApiResponse { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int32]] + ${code}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${type}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${message} + ) + + Process { + 'Creating object: IO.Swagger.Model.ApiResponse' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.ApiResponse -ArgumentList @( + ${code}, + ${type}, + ${message} + ) + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Category.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Category.ps1 new file mode 100644 index 00000000000..9009a971945 --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Category.ps1 @@ -0,0 +1,21 @@ +function New-Category { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${name} + ) + + Process { + 'Creating object: IO.Swagger.Model.Category' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Category -ArgumentList @( + ${id}, + ${name} + ) + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Order.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Order.ps1 new file mode 100644 index 00000000000..199952c4e18 --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Order.ps1 @@ -0,0 +1,37 @@ +function New-Order { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${petId}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int32]] + ${quantity}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[System.DateTime]] + ${shipDate}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${status}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Boolean]] + ${complete} + ) + + Process { + 'Creating object: IO.Swagger.Model.Order' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Order -ArgumentList @( + ${id}, + ${petId}, + ${quantity}, + ${shipDate}, + ${status}, + ${complete} + ) + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Pet.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Pet.ps1 new file mode 100644 index 00000000000..1e434e8cada --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Pet.ps1 @@ -0,0 +1,37 @@ +function New-Pet { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[IO.Swagger.Model.Category]] + ${category}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String] + ${name}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [String[]] + ${photoUrls}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[IO.Swagger.Model.Tag[]]] + ${tags}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${status} + ) + + Process { + 'Creating object: IO.Swagger.Model.Pet' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Pet -ArgumentList @( + ${id}, + ${category}, + ${name}, + ${photoUrls}, + ${tags}, + ${status} + ) + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Tag.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Tag.ps1 new file mode 100644 index 00000000000..2d333643afe --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-Tag.ps1 @@ -0,0 +1,21 @@ +function New-Tag { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${name} + ) + + Process { + 'Creating object: IO.Swagger.Model.Tag' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.Tag -ArgumentList @( + ${id}, + ${name} + ) + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-User.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-User.ps1 new file mode 100644 index 00000000000..011ffdef5cb --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Model/New-User.ps1 @@ -0,0 +1,45 @@ +function New-User { + [CmdletBinding()] + Param ( + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int64]] + ${id}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${username}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${firstName}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${lastName}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${email}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${password}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [String] + ${phone}, + [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [System.Nullable[Int32]] + ${userStatus} + ) + + Process { + 'Creating object: IO.Swagger.Model.User' | Write-Verbose + $PSBoundParameters | Out-DebugParameter | Write-Debug + + New-Object -TypeName IO.Swagger.Model.User -ArgumentList @( + ${id}, + ${username}, + ${firstName}, + ${lastName}, + ${email}, + ${password}, + ${phone}, + ${userStatus} + ) + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Private/Get-CommonParameters.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Private/Get-CommonParameters.ps1 new file mode 100644 index 00000000000..31a0a1ff3af --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Private/Get-CommonParameters.ps1 @@ -0,0 +1,14 @@ +<# +.Synopsis + Helper function to get common parameters (Verbose, Debug, etc.) +.Example + Get-CommonParameters +#> +function Get-CommonParameters { + function tmp { + [CmdletBinding()] + Param () + } + + (Get-Command -Name tmp -CommandType Function).Parameters.Keys +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/Private/Out-DebugParameter.ps1 b/samples/client/petstore/powershell_test/src/IO.Swagger/Private/Out-DebugParameter.ps1 new file mode 100644 index 00000000000..ca18c391cc1 --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/Private/Out-DebugParameter.ps1 @@ -0,0 +1,37 @@ +<# +.Synopsis + Helper function to format debug parameter output. +.Example + $PSBoundParameters | Out-DebugParameter | Write-Debug +#> +function Out-DebugParameter { + [CmdletBinding()] + Param ( + [Parameter(ValueFromPipeline = $true, Mandatory = $true)] + [AllowEmptyCollection()] + $InputObject + ) + + Begin { + $CommonParameters = Get-CommonParameters + } + + Process { + $InputObject.GetEnumerator() | Where-Object { + $CommonParameters -notcontains $_.Key + } | Format-Table -AutoSize -Property ( + @{ + Name = 'Parameter' + Expression = {$_.Key} + }, + @{ + Name = 'Value' + Expression = {$_.Value} + } + ) | Out-String -Stream | ForEach-Object { + if ($_.Trim()) { + $_ + } + } + } +} diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt b/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt new file mode 100644 index 00000000000..4233d622cac --- /dev/null +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt @@ -0,0 +1,20 @@ +PSTOPIC + about_IO.Swagger + +SHORT DESCRIPTION + IO.Swagger - the PowerShell module for the Swagger Petstore + +LONG DESCRIPTION + This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + + This PowerShell module is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + + - API version: 1.0.0 + - SDK version: + - Build date: 2017-06-20T16:12:54.727+08:00 + - Build package: io.swagger.codegen.languages.PowerShellClientCodegen + + Frameworks supported: + + * PowerShell 3.0+ + * .NET 4.0 or later diff --git a/samples/client/petstore/powershell_test/test/ApiResponseTest.ps1 b/samples/client/petstore/powershell_test/test/ApiResponseTest.ps1 new file mode 100644 index 00000000000..1fc8f6add42 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/ApiResponseTest.ps1 @@ -0,0 +1,2 @@ +## TODO we need to update the template to test the model files + diff --git a/samples/client/petstore/powershell_test/test/CategoryTest.ps1 b/samples/client/petstore/powershell_test/test/CategoryTest.ps1 new file mode 100644 index 00000000000..1fc8f6add42 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/CategoryTest.ps1 @@ -0,0 +1,2 @@ +## TODO we need to update the template to test the model files + diff --git a/samples/client/petstore/powershell_test/test/OrderTest.ps1 b/samples/client/petstore/powershell_test/test/OrderTest.ps1 new file mode 100644 index 00000000000..1fc8f6add42 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/OrderTest.ps1 @@ -0,0 +1,2 @@ +## TODO we need to update the template to test the model files + diff --git a/samples/client/petstore/powershell_test/test/PetApiTest.ps1 b/samples/client/petstore/powershell_test/test/PetApiTest.ps1 new file mode 100644 index 00000000000..5b21efc1aa5 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/PetApiTest.ps1 @@ -0,0 +1,69 @@ +# This file is auto-generated by Swagger Codegen (https://github.com/swagger-api/swagger-codegen) +# Please replace "TEST_VALUE" with a proper value and uncomment the code for testing the function + +Describe 'IO.Swagger PetApi' { + Context 'PetApi' { + It 'Invoke-PetApiAddPet' { + $ret = Invoke-PetApiGetPetById -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiDeletePet' { + $ret = Invoke-PetApiGetPetById -petId "TEST_VALUE" -apiKey "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiFindPetsByStatus' { + $ret = Invoke-PetApiGetPetById -status "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiFindPetsByTags' { + $ret = Invoke-PetApiGetPetById -tags "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiGetPetById' { + $ret = Invoke-PetApiGetPetById -petId "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiUpdatePet' { + $ret = Invoke-PetApiGetPetById -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiUpdatePetWithForm' { + $ret = Invoke-PetApiGetPetById -petId "TEST_VALUE" -name "TEST_VALUE" -status "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'PetApi' { + It 'Invoke-PetApiUploadFile' { + $ret = Invoke-PetApiGetPetById -petId "TEST_VALUE" -additionalMetadata "TEST_VALUE" -file "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + +} diff --git a/samples/client/petstore/powershell_test/test/PetTest.ps1 b/samples/client/petstore/powershell_test/test/PetTest.ps1 new file mode 100644 index 00000000000..1fc8f6add42 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/PetTest.ps1 @@ -0,0 +1,2 @@ +## TODO we need to update the template to test the model files + diff --git a/samples/client/petstore/powershell_test/test/StoreApiTest.ps1 b/samples/client/petstore/powershell_test/test/StoreApiTest.ps1 new file mode 100644 index 00000000000..de02803fe95 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/StoreApiTest.ps1 @@ -0,0 +1,37 @@ +# This file is auto-generated by Swagger Codegen (https://github.com/swagger-api/swagger-codegen) +# Please replace "TEST_VALUE" with a proper value and uncomment the code for testing the function + +Describe 'IO.Swagger StoreApi' { + Context 'StoreApi' { + It 'Invoke-StoreApiDeleteOrder' { + $ret = Invoke-PetApiGetPetById -orderId "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'StoreApi' { + It 'Invoke-StoreApiGetInventory' { + $ret = Invoke-PetApiGetPetById + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'StoreApi' { + It 'Invoke-StoreApiGetOrderById' { + $ret = Invoke-PetApiGetPetById -orderId "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'StoreApi' { + It 'Invoke-StoreApiPlaceOrder' { + $ret = Invoke-PetApiGetPetById -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + +} diff --git a/samples/client/petstore/powershell_test/test/TagTest.ps1 b/samples/client/petstore/powershell_test/test/TagTest.ps1 new file mode 100644 index 00000000000..1fc8f6add42 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/TagTest.ps1 @@ -0,0 +1,2 @@ +## TODO we need to update the template to test the model files + diff --git a/samples/client/petstore/powershell_test/test/UserApiTest.ps1 b/samples/client/petstore/powershell_test/test/UserApiTest.ps1 new file mode 100644 index 00000000000..ecc58b46c1c --- /dev/null +++ b/samples/client/petstore/powershell_test/test/UserApiTest.ps1 @@ -0,0 +1,69 @@ +# This file is auto-generated by Swagger Codegen (https://github.com/swagger-api/swagger-codegen) +# Please replace "TEST_VALUE" with a proper value and uncomment the code for testing the function + +Describe 'IO.Swagger UserApi' { + Context 'UserApi' { + It 'Invoke-UserApiCreateUser' { + $ret = Invoke-PetApiGetPetById -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiCreateUsersWithArrayInput' { + $ret = Invoke-PetApiGetPetById -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiCreateUsersWithListInput' { + $ret = Invoke-PetApiGetPetById -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiDeleteUser' { + $ret = Invoke-PetApiGetPetById -username "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiGetUserByName' { + $ret = Invoke-PetApiGetPetById -username "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiLoginUser' { + $ret = Invoke-PetApiGetPetById -username "TEST_VALUE" -password "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiLogoutUser' { + $ret = Invoke-PetApiGetPetById + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + + Context 'UserApi' { + It 'Invoke-UserApiUpdateUser' { + $ret = Invoke-PetApiGetPetById -username "TEST_VALUE" -body "TEST_VALUE" + #$ret | Should BeOfType IO.Swagger.Model.ModelNameHere + #$ret.property | Should Be 0 + } + } + +} diff --git a/samples/client/petstore/powershell_test/test/UserTest.ps1 b/samples/client/petstore/powershell_test/test/UserTest.ps1 new file mode 100644 index 00000000000..1fc8f6add42 --- /dev/null +++ b/samples/client/petstore/powershell_test/test/UserTest.ps1 @@ -0,0 +1,2 @@ +## TODO we need to update the template to test the model files + From 4920da6ac791b1c2486ca3cd77b052ea6312da27 Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 20 Jun 2017 23:26:19 +0800 Subject: [PATCH 15/33] add beatcracker as template creator of PowerShell --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2937f082953..d105bbfee2a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ ## Overview This is the swagger codegen project, which allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification). Currently, the following languages/frameworks are supported: -- **API clients**: **ActionScript**, **Apex**, **Bash**, **C#** (.net 2.0, 4.0 or later), **C++** (cpprest, Qt5, Tizen), **Clojure**, **Dart**, **Elixir**, **Go**, **Groovy**, **Haskell**, **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign), **Kotlin**, **Node.js** (ES5, ES6, AngularJS with Google Closure Compiler annotations) **Objective-C**, **Perl**, **PHP**, **Python**, **Ruby**, **Scala**, **Swift** (2.x, 3.x), **Typescript** (Angular1.x, Angular2.x, Fetch, jQuery, Node) +- **API clients**: **ActionScript**, **Apex**, **Bash**, **C#** (.net 2.0, 4.0 or later), **C++** (cpprest, Qt5, Tizen), **Clojure**, **Dart**, **Elixir**, **Go**, **Groovy**, **Haskell**, **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign), **Kotlin**, **Node.js** (ES5, ES6, AngularJS with Google Closure Compiler annotations) **Objective-C**, **Perl**, **PHP**, **PowerShell**, **Python**, **Ruby**, **Scala**, **Swift** (2.x, 3.x), **Typescript** (Angular1.x, Angular2.x, Fetch, jQuery, Node) - **Server stubs**: **C#** (ASP.NET Core, NancyFx), **C++** (Pistache, Restbed), **Erlang**, **Go**, **Haskell**, **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy, Play Framework), **PHP** (Lumen, Slim, Silex, [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Scala** ([Finch](https://github.com/finagle/finch), Scalatra) - **API documentation generators**: **HTML**, **Confluence Wiki** - **Others**: **JMeter** @@ -902,6 +902,7 @@ Here is a list of template creators: * C++ REST: @Danielku15 * C# (.NET 2.0): @who * C# (.NET Standard 1.3 ): @Gronsak + * C# (.NET 4.5 refactored): @jim * Clojure: @xhh * Dart: @yissachar * Elixir: @niku @@ -922,6 +923,7 @@ Here is a list of template creators: * Kotlin @jimschubert * Perl: @wing328 * PHP (Guzzle): @baartosz + * PowerShell: @beatcracker * Swift: @tkqubo * Swift 3: @hexelon * TypeScript (Node): @mhardorf From 2b8e9689771b2fa706f7ea548c45c09c01c9da5f Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 20 Jun 2017 23:28:14 +0800 Subject: [PATCH 16/33] remove duplicated kotlin template creator --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d105bbfee2a..58527a03de9 100644 --- a/README.md +++ b/README.md @@ -916,7 +916,6 @@ Here is a list of template creators: * Java (okhttp-gson): @xhh * Java (RestTemplate): @nbruno * Java (RESTEasy): @gayathrigs - * Kotlin: @jimschubert * Javascript/NodeJS: @jfiala * Javascript (Closure-annotated Angular) @achew22 * JMeter @davidkiss From 8d0c7128b0d02aa5d158df70e7a4c3d989c1e165 Mon Sep 17 00:00:00 2001 From: wing328 Date: Wed, 21 Jun 2017 00:58:29 +0800 Subject: [PATCH 17/33] add option to specify c# client path in powershell generator (#5887) --- bin/powershell-petstore.sh | 2 +- bin/windows/powershell-petsstore.bat | 2 +- .../languages/PowerShellClientCodegen.java | 13 ++++ .../resources/powershell/Build.ps1.mustache | 2 +- .../main/resources/powershell/README.mustache | 63 +--------------- .../client/petstore/powershell_test/README.md | 74 +------------------ .../en-US/about_IO.Swagger.help.txt | 2 +- 7 files changed, 20 insertions(+), 138 deletions(-) diff --git a/bin/powershell-petstore.sh b/bin/powershell-petstore.sh index 977a4147cb3..6e4c9b533aa 100755 --- a/bin/powershell-petstore.sh +++ b/bin/powershell-petstore.sh @@ -26,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="generate -t modules/swagger-codegen/src/main/resources/powershell -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l powershell -o samples/client/petstore/powershell_test --additional-properties packageGuid=a27b908d-2a20-467f-bc32-af6f3a654ac5 $@" +ags="generate -t modules/swagger-codegen/src/main/resources/powershell -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l powershell -o samples/client/petstore/powershell_test --additional-properties packageGuid=a27b908d-2a20-467f-bc32-af6f3a654ac5,csharpClientPath=\$ScriptDir\..\..\petstore\csharp\SwaggerClient $@" java ${JAVA_OPTS} -jar ${executable} ${ags} diff --git a/bin/windows/powershell-petsstore.bat b/bin/windows/powershell-petsstore.bat index 0a066b8ae48..da7b0f61e03 100644 --- a/bin/windows/powershell-petsstore.bat +++ b/bin/windows/powershell-petsstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties -set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.yaml -l powershell -o samples\client\petstore\powershell +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.yaml -l powershell -o samples\client\petstore\powershell --additional-properties packageGuid=a27b908d-2a20-467f-bc32-af6f3a654ac5,csharpClientPath=$ScriptDir\..\..\petstore\csharp\SwaggerClient java %JAVA_OPTS% -jar %executable% %ags% diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java index e884828fccc..dcacc549406 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PowerShellClientCodegen.java @@ -24,6 +24,7 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo protected String sourceFolder = "src"; protected String packageName = "IO.Swagger"; + protected String csharpClientPath = "$ScriptDir\\csharp\\SwaggerClient"; protected String apiDocPath = "docs/"; protected String modelDocPath = "docs/"; @@ -152,6 +153,8 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo cliOptions.clear(); cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "Client package name (e.g. io.swagger.client).").defaultValue(this.packageName)); cliOptions.add(new CliOption(CodegenConstants.OPTIONAL_PROJECT_GUID, "GUID for PowerShell module (e.g. a27b908d-2a20-467f-bc32-af6f3a654ac5). A random GUID will be generated by default.")); + cliOptions.add(new CliOption("csharpClientPath", "Path to the C# API client generated by Swagger Codegen, e.g. $ScriptDir\\..\\csharp\\SwaggerClient where $ScriptDir is the current directory.").defaultValue(this.csharpClientPath)); + } public CodegenType getTag() { @@ -170,6 +173,10 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo this.packageName = packageName; } + public void setCsharpClientPath(String csharpClientPath) { + this.csharpClientPath = csharpClientPath; + } + public void setSourceFolder(String sourceFolder) { this.sourceFolder = sourceFolder; } @@ -193,6 +200,12 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName); } + if (additionalProperties.containsKey("csharpClientPath")) { + this.setCsharpClientPath((String) additionalProperties.get("csharpClientPath")); + } else { + additionalProperties.put("csharpClientPath", csharpClientPath); + } + if (additionalProperties.containsKey(CodegenConstants.MODEL_PACKAGE)) { LOGGER.warn(CodegenConstants.MODEL_PACKAGE + " with " + this.getName() + " generator is ignored. Setting this value independently of " + CodegenConstants.PACKAGE_NAME + " is not currently supported."); } diff --git a/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache b/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache index fb71a543014..4cb78dce827 100644 --- a/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache +++ b/modules/swagger-codegen/src/main/resources/powershell/Build.ps1.mustache @@ -38,7 +38,7 @@ function Get-FunctionsToExport { } $ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path -$ClientPath = ("$ScriptDir\..\..\petstore\csharp\SwaggerClient" | Resolve-Path).ProviderPath +$ClientPath = ("{{{csharpClientPath}}}" | Resolve-Path).ProviderPath $FunctionPath = 'API', 'Model' | ForEach-Object {Join-Path "$ScriptDir\src\{{{packageName}}}\" $_} $BinPath = "$ScriptDir\src\{{{packageName}}}\Bin" diff --git a/modules/swagger-codegen/src/main/resources/powershell/README.mustache b/modules/swagger-codegen/src/main/resources/powershell/README.mustache index 76dc67b7d79..e1351f54373 100644 --- a/modules/swagger-codegen/src/main/resources/powershell/README.mustache +++ b/modules/swagger-codegen/src/main/resources/powershell/README.mustache @@ -18,21 +18,11 @@ This PowerShell module is automatically generated by the [Swagger Codegen](https ## Frameworks supported -- .NET 4.0 or later - PowerShell 3.0 or later ## Dependencies -- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later -- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later - -The DLLs included in the package may not be the latest version. We recommend using [NuGet] (https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: -``` -Install-Package RestSharp -Install-Package Newtonsoft.Json -``` - -NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) +- C# API client generated by Swagger Codegen AND should be located in {{{csharpClientPath}}} as stated in Build.ps1 ## Installation @@ -46,54 +36,3 @@ using {{packageName}}.Client; using {{packageName}}.{{modelPackage}}; ``` - -## Documentation for API Endpoints - -All URIs are relative to *{{{basePath}}}* - -Class | Method | HTTP request | Description ------------- | ------------- | ------------- | ------------- -{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{{summary}}}{{/summary}} -{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}} - - -## Documentation for Models - -{{#modelPackage}} -{{#models}}{{#model}} - [{{{modelPackage}}}.{{{classname}}}]({{modelDocPath}}{{{classname}}}.md) -{{/model}}{{/models}} -{{/modelPackage}} -{{^modelPackage}} -No model defined in this package -{{/modelPackage}} - - -## Documentation for Authorization - -{{^authMethods}} -All endpoints do not require authorization. -{{/authMethods}} -{{#authMethods}} -{{#last}} -Authentication schemes defined for the API: -{{/last}} -{{/authMethods}} -{{#authMethods}} - -### {{name}} - -{{#isApiKey}}- **Type**: API key -- **API key parameter name**: {{keyParamName}} -- **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}} -{{/isApiKey}} -{{#isBasic}}- **Type**: HTTP basic authentication -{{/isBasic}} -{{#isOAuth}}- **Type**: OAuth -- **Flow**: {{flow}} -- **Authorization URL**: {{authorizationUrl}} -- **Scopes**: {{^scopes}}N/A{{/scopes}} -{{#scopes}} - {{scope}}: {{description}} -{{/scopes}} -{{/isOAuth}} - -{{/authMethods}} diff --git a/samples/client/petstore/powershell_test/README.md b/samples/client/petstore/powershell_test/README.md index 75f5add565a..eed57643045 100644 --- a/samples/client/petstore/powershell_test/README.md +++ b/samples/client/petstore/powershell_test/README.md @@ -6,26 +6,16 @@ This PowerShell module is automatically generated by the [Swagger Codegen](https - API version: 1.0.0 - SDK version: -- Build date: 2017-06-20T16:12:54.727+08:00 +- Build date: 2017-06-20T22:49:00.415+08:00 - Build package: io.swagger.codegen.languages.PowerShellClientCodegen ## Frameworks supported -- .NET 4.0 or later - PowerShell 3.0 or later ## Dependencies -- [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later -- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later - -The DLLs included in the package may not be the latest version. We recommend using [NuGet] (https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages: -``` -Install-Package RestSharp -Install-Package Newtonsoft.Json -``` - -NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) +- C# API client generated by Swagger Codegen AND should be located in $ScriptDir\..\..\petstore\csharp\SwaggerClient as stated in Build.ps1 ## Installation @@ -39,63 +29,3 @@ using IO.Swagger.Client; using IO.Swagger.IO.Swagger/Model; ``` - -## Documentation for API Endpoints - -All URIs are relative to *http://petstore.swagger.io/v2* - -Class | Method | HTTP request | Description ------------- | ------------- | ------------- | ------------- -*PetApi* | [**AddPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store -*PetApi* | [**DeletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet -*PetApi* | [**FindPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status -*PetApi* | [**FindPetsByTags**](docs/PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags -*PetApi* | [**GetPetById**](docs/PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID -*PetApi* | [**UpdatePet**](docs/PetApi.md#updatepet) | **PUT** /pet | Update an existing pet -*PetApi* | [**UpdatePetWithForm**](docs/PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data -*PetApi* | [**UploadFile**](docs/PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image -*StoreApi* | [**DeleteOrder**](docs/StoreApi.md#deleteorder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID -*StoreApi* | [**GetInventory**](docs/StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status -*StoreApi* | [**GetOrderById**](docs/StoreApi.md#getorderbyid) | **GET** /store/order/{orderId} | Find purchase order by ID -*StoreApi* | [**PlaceOrder**](docs/StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet -*UserApi* | [**CreateUser**](docs/UserApi.md#createuser) | **POST** /user | Create user -*UserApi* | [**CreateUsersWithArrayInput**](docs/UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array -*UserApi* | [**CreateUsersWithListInput**](docs/UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array -*UserApi* | [**DeleteUser**](docs/UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user -*UserApi* | [**GetUserByName**](docs/UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name -*UserApi* | [**LoginUser**](docs/UserApi.md#loginuser) | **GET** /user/login | Logs user into the system -*UserApi* | [**LogoutUser**](docs/UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session -*UserApi* | [**UpdateUser**](docs/UserApi.md#updateuser) | **PUT** /user/{username} | Updated user - - - -## Documentation for Models - - - [IO.Swagger/Model.ApiResponse](docs/ApiResponse.md) - - [IO.Swagger/Model.Category](docs/Category.md) - - [IO.Swagger/Model.Order](docs/Order.md) - - [IO.Swagger/Model.Pet](docs/Pet.md) - - [IO.Swagger/Model.Tag](docs/Tag.md) - - [IO.Swagger/Model.User](docs/User.md) - - - -## Documentation for Authorization - - -### api_key - -- **Type**: API key -- **API key parameter name**: api_key -- **Location**: HTTP header - - -### petstore_auth - -- **Type**: OAuth -- **Flow**: implicit -- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog -- **Scopes**: - - write:pets: modify pets in your account - - read:pets: read your pets - diff --git a/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt b/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt index 4233d622cac..d598279543b 100644 --- a/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt +++ b/samples/client/petstore/powershell_test/src/IO.Swagger/en-US/about_IO.Swagger.help.txt @@ -11,7 +11,7 @@ LONG DESCRIPTION - API version: 1.0.0 - SDK version: - - Build date: 2017-06-20T16:12:54.727+08:00 + - Build date: 2017-06-20T22:49:00.415+08:00 - Build package: io.swagger.codegen.languages.PowerShellClientCodegen Frameworks supported: From 8c9f377c1654c6fd89adacbacda667b6a51cbb6f Mon Sep 17 00:00:00 2001 From: stkrwork Date: Tue, 20 Jun 2017 18:59:31 +0200 Subject: [PATCH 18/33] [CPP] [CPPREST] isMapContainer fix for models (#5884) * - Added Restbed Generator * - Added Json processing functions to model - Removed unnused code from restbed codegen class - Added response header processing to api template * Changed it to respect alphabetical order * Made the string joining java 7 compatible * Added samples * First step in fixing the cpp rest template regenerated new samples TODO: Fix the other functions * Updated samples * Added isMapContainer check * Fixed item selection in json object for MapContainer --- .../resources/cpprest/model-source.mustache | 157 +++++++++++++++++- 1 file changed, 153 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache index 6d4a18bf2f0..38388fa4fa5 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache @@ -53,6 +53,7 @@ web::json::value {{classname}}::toJson() const {{^isInherited}} {{#isPrimitiveType}} {{^isListContainer}} + {{^isMapContainer}} {{^required}} if(m_{{name}}IsSet) { @@ -62,6 +63,7 @@ web::json::value {{classname}}::toJson() const {{#required}} val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); {{/required}} + {{/isMapContainer}} {{/isListContainer}} {{/isPrimitiveType}} {{#isListContainer}} @@ -82,7 +84,29 @@ web::json::value {{classname}}::toJson() const {{/required}} } {{/isListContainer}} + {{#isMapContainer}} + { + std::vector jsonArray; + for( auto& item : m_{{name}} ) + { + web::json::value tmp = web::json::value::object(); + tmp[U("key")] = ModelBase::toJson(item.first()); + tmp[U("value")] = ModelBase::toJson(item.second()); + jsonArray.push_back(tmp); + } + {{#required}} + val[U("{{baseName}}")] = web::json::value::array(jsonArray); + {{/required}} + {{^required}} + if(jsonArray.size() > 0) + { + val[U("{{baseName}}")] = web::json::value::array(jsonArray); + } + {{/required}} + } + {{/isMapContainer}} {{^isListContainer}} + {{^isMapContainer}} {{^isPrimitiveType}} {{^required}} if(m_{{name}}IsSet) @@ -94,6 +118,7 @@ web::json::value {{classname}}::toJson() const val[U("{{baseName}}")] = ModelBase::toJson(m_{{name}}); {{/required}} {{/isPrimitiveType}} + {{/isMapContainer}} {{/isListContainer}} {{/isInherited}} {{/vars}} @@ -111,6 +136,7 @@ void {{classname}}::fromJson(web::json::value& val) {{^isInherited}} {{#isPrimitiveType}} {{^isListContainer}} + {{^isMapContainer}} {{^required}} if(val.has_field(U("{{baseName}}"))) { @@ -120,6 +146,7 @@ void {{classname}}::fromJson(web::json::value& val) {{#required}} {{setter}}(ModelBase::{{baseType}}FromJson(val[U("{{baseName}}")])); {{/required}} + {{/isMapContainer}} {{/isListContainer}} {{/isPrimitiveType}} {{#isListContainer}} @@ -132,10 +159,10 @@ void {{classname}}::fromJson(web::json::value& val) {{/required}} for( auto& item : val[U("{{baseName}}")].as_array() ) { - {{#isPrimitiveType}} + {{#items.isPrimitiveType}} m_{{name}}.push_back(ModelBase::{{items.baseType}}FromJson(item)); - {{/isPrimitiveType}} - {{^isPrimitiveType}} + {{/items.isPrimitiveType}} + {{^items.isPrimitiveType}} {{#items.isString}} m_{{name}}.push_back(ModelBase::stringFromJson(item)); {{/items.isString}} @@ -156,14 +183,61 @@ void {{classname}}::fromJson(web::json::value& val) } {{/items.isDateTime}} {{/items.isString}} - {{/isPrimitiveType}} + {{/items.isPrimitiveType}} } {{^required}} } {{/required}} } {{/isListContainer}} + {{#isMapContainer}} + { + m_{{name}}.clear(); + std::vector jsonArray; + {{^required}} + if(val.has_field(U("{{baseName}}"))) + { + {{/required}} + for( auto& item : val[U("{{baseName}}")].as_array() ) + { + utility::string_t key = ""; + if(item.has_field(U("key"))) + { + key = ModelBase::stringFromJson(item[U("key")]); + } + {{#items.isPrimitiveType}} + m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); + {{/items.isPrimitiveType}} + {{^items.isPrimitiveType}} + {{#items.isString}} + m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); + {{/items.isString}} + {{^items.isString}} + {{#items.isDateTime}} + m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); + {{/items.isDateTime}} + {{^items.isDateTime}} + if(item.is_null()) + { + m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); + } + else + { + {{{items.datatype}}} newItem({{{items.defaultValue}}}); + newItem->fromJson(item[U("value")]); + m_{{name}}.insert(std::pair( key, newItem )); + } + {{/items.isDateTime}} + {{/items.isString}} + {{/items.isPrimitiveType}} + } + {{^required}} + } + {{/required}} + } + {{/isMapContainer}} {{^isListContainer}} + {{^isMapContainer}} {{^isPrimitiveType}} {{^required}} if(val.has_field(U("{{baseName}}"))) @@ -208,6 +282,7 @@ void {{classname}}::fromJson(web::json::value& val) {{/isString}} {{/required}} {{/isPrimitiveType}} + {{/isMapContainer}} {{/isListContainer}} {{/isInherited}} {{/vars}} @@ -223,6 +298,7 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co {{#vars}} {{#isPrimitiveType}} + {{^isMapContainer}} {{^isListContainer}} {{^required}} if(m_{{name}}IsSet) @@ -234,6 +310,7 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), m_{{name}})); {{/required}} {{/isListContainer}} + {{/isMapContainer}} {{/isPrimitiveType}} {{#isListContainer}} { @@ -251,7 +328,27 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co {{/required}} } {{/isListContainer}} + {{#isMapContainer}} + { + std::vector jsonArray; + for( auto& item : m_{{name}} ) + { + web::json::value tmp = web::json::value::object(); + tmp[U("key")] = ModelBase::toJson(item.first()); + tmp[U("value")] = ModelBase::toJson(item.second()); + jsonArray.push_back(tmp); + } + {{#required}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), web::json::value::array(jsonArray), U("application/json"))); + {{/required}}{{^required}} + if(jsonArray.size() > 0) + { + multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), web::json::value::array(jsonArray), U("application/json"))); + } + {{/required}} + } + {{/isMapContainer}} {{^isListContainer}} + {{^isMapContainer}} {{^isPrimitiveType}} {{^required}} if(m_{{name}}IsSet) @@ -284,6 +381,7 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co {{/isString}} {{/required}} {{/isPrimitiveType}} + {{/isMapContainer}} {{/isListContainer}} {{/vars}} } @@ -299,6 +397,7 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, {{#vars}} {{#isPrimitiveType}} {{^isListContainer}} + {{^isMapContainer}} {{^required}} if(multipart->hasContent(U("{{baseName}}"))) { @@ -308,6 +407,7 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, {{#required}} {{setter}}(ModelBase::{{baseType}}FromHttpContent(multipart->getContent(U("{{baseName}}")))); {{/required}} + {{/isMapContainer}} {{/isListContainer}} {{/isPrimitiveType}} {{#isListContainer}} @@ -352,7 +452,55 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, {{/required}} } {{/isListContainer}} + {{#isMapContainer}} + { + m_{{name}}.clear(); + {{^required}} + if(multipart->hasContent(U("{{baseName}}"))) + { + {{/required}} + + web::json::value jsonArray = web::json::value::parse(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); + for( auto& item : jsonArray.as_array() ) + { + utility::string_t key = ""; + if(item.has_field(U("key"))) + { + key = ModelBase::stringFromJson(item[U("key")]); + } + {{#items.isPrimitiveType}} + m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); + {{/items.isPrimitiveType}} + {{^items.isPrimitiveType}} + {{#items.isString}} + m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); + {{/items.isString}} + {{^items.isString}} + {{#items.isDateTime}} + m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); + {{/items.isDateTime}} + {{^items.isDateTime}} + if(item.is_null()) + { + m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); + } + else + { + {{{items.datatype}}} newItem({{{items.defaultValue}}}); + newItem->fromJson(item[U("value")]); + m_{{name}}.insert(std::pair( key, newItem )); + } + {{/items.isDateTime}} + {{/items.isString}} + {{/items.isPrimitiveType}} + } + {{^required}} + } + {{/required}} + } + {{/isMapContainer}} {{^isListContainer}} + {{^isMapContainer}} {{^isPrimitiveType}} {{^required}} if(multipart->hasContent(U("{{baseName}}"))) @@ -396,6 +544,7 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, {{/isString}} {{/required}} {{/isPrimitiveType}} + {{/isMapContainer}} {{/isListContainer}} {{/vars}} } From 45519c521c8ab49ae1634e3aa939e811ec8dbf5f Mon Sep 17 00:00:00 2001 From: SiMing Weng Date: Wed, 21 Jun 2017 04:41:42 -0400 Subject: [PATCH 19/33] add testimonial of Viavi Solutions Inc. (#5890) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 58527a03de9..2e693566c3e 100644 --- a/README.md +++ b/README.md @@ -815,6 +815,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [Upwork](http://upwork.com/) - [uShip](https://www.uship.com/) - [VMware](https://vmware.com/) +- [Viavi Solutions Inc.](https://www.viavisolutions.com) - [W.UP](http://wup.hu/?siteLang=en) - [Wealthfront](https://www.wealthfront.com/) - [Webever GmbH](https://www.webever.de/) From d35239c661e95318499061a2ae0a3b336c563fa1 Mon Sep 17 00:00:00 2001 From: wing328 Date: Wed, 21 Jun 2017 21:35:45 +0800 Subject: [PATCH 20/33] recursively add import for parameters (#5891) --- .../io/swagger/codegen/DefaultCodegen.java | 22 ++++- .../java/io/swagger/client/ApiClient.java | 88 ++++++++++--------- .../java/io/swagger/client/ApiClient.java | 88 ++++++++++--------- 3 files changed, 116 insertions(+), 82 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 49ea0d4bb5f..182f422b381 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -2410,7 +2410,12 @@ public class DefaultCodegen { p.baseType = pr.datatype; p.isContainer = true; p.isListContainer = true; - imports.add(pr.baseType); + + // recursively add import + while (pr != null) { + imports.add(pr.baseType); + pr = pr.items; + } } else if ("object".equals(type)) { // for map parameter Property inner = qp.getItems(); if (inner == null) { @@ -2424,7 +2429,11 @@ public class DefaultCodegen { p.baseType = pr.datatype; p.isContainer = true; p.isMapContainer = true; - imports.add(pr.baseType); + // recursively add import + while (pr != null) { + imports.add(pr.baseType); + pr = pr.items; + } } else { Map args = new HashMap(); String format = qp.getFormat(); @@ -2502,6 +2511,7 @@ public class DefaultCodegen { } } else { + LOGGER.info("proessing body parameter ..."); if (!(param instanceof BodyParameter)) { LOGGER.error("Cannot use Parameter " + param + " as Body Parameter"); } @@ -2545,6 +2555,14 @@ public class DefaultCodegen { imports.add(cp.complexType); } imports.add(cp.baseType); + + // recursively add import + CodegenProperty innerCp = cp; + while(innerCp != null) { + imports.add(innerCp.complexType); + innerCp = innerCp.items; + } + p.items = cp; p.dataType = cp.datatype; p.baseType = cp.complexType; diff --git a/samples/client/petstore/java/jersey2-java6/src/main/java/io/swagger/client/ApiClient.java b/samples/client/petstore/java/jersey2-java6/src/main/java/io/swagger/client/ApiClient.java index 938b7521e6f..79df237e1dd 100644 --- a/samples/client/petstore/java/jersey2-java6/src/main/java/io/swagger/client/ApiClient.java +++ b/samples/client/petstore/java/jersey2-java6/src/main/java/io/swagger/client/ApiClient.java @@ -671,48 +671,56 @@ public class ApiClient { Entity entity = serialize(body, formParams, contentType); - Response response; + Response response = null; - if ("GET".equals(method)) { - response = invocationBuilder.get(); - } else if ("POST".equals(method)) { - response = invocationBuilder.post(entity); - } else if ("PUT".equals(method)) { - response = invocationBuilder.put(entity); - } else if ("DELETE".equals(method)) { - response = invocationBuilder.delete(); - } else if ("PATCH".equals(method)) { - response = invocationBuilder.header("X-HTTP-Method-Override", "PATCH").post(entity); - } else { - throw new ApiException(500, "unknown method type " + method); - } - - statusCode = response.getStatusInfo().getStatusCode(); - responseHeaders = buildResponseHeaders(response); - - if (response.getStatus() == Status.NO_CONTENT.getStatusCode()) { - return null; - } else if (response.getStatusInfo().getFamily() == Status.Family.SUCCESSFUL) { - if (returnType == null) - return null; - else - return deserialize(response, returnType); - } else { - String message = "error"; - String respBody = null; - if (response.hasEntity()) { - try { - respBody = String.valueOf(response.readEntity(String.class)); - message = respBody; - } catch (RuntimeException e) { - // e.printStackTrace(); - } + try { + if ("GET".equals(method)) { + response = invocationBuilder.get(); + } else if ("POST".equals(method)) { + response = invocationBuilder.post(entity); + } else if ("PUT".equals(method)) { + response = invocationBuilder.put(entity); + } else if ("DELETE".equals(method)) { + response = invocationBuilder.delete(); + } else if ("PATCH".equals(method)) { + response = invocationBuilder.header("X-HTTP-Method-Override", "PATCH").post(entity); + } else { + throw new ApiException(500, "unknown method type " + method); + } + + statusCode = response.getStatusInfo().getStatusCode(); + responseHeaders = buildResponseHeaders(response); + + if (response.getStatus() == Status.NO_CONTENT.getStatusCode()) { + return null; + } else if (response.getStatusInfo().getFamily() == Status.Family.SUCCESSFUL) { + if (returnType == null) + return null; + else + return deserialize(response, returnType); + } else { + String message = "error"; + String respBody = null; + if (response.hasEntity()) { + try { + respBody = String.valueOf(response.readEntity(String.class)); + message = respBody; + } catch (RuntimeException e) { + // e.printStackTrace(); + } + } + throw new ApiException( + response.getStatus(), + message, + buildResponseHeaders(response), + respBody); + } + } finally { + try { + response.close(); + } catch (Exception e) { + // it's not critical, since the response object is local in method invokeAPI; that's fine, just continue } - throw new ApiException( - response.getStatus(), - message, - buildResponseHeaders(response), - respBody); } } diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/io/swagger/client/ApiClient.java b/samples/client/petstore/java/jersey2-java8/src/main/java/io/swagger/client/ApiClient.java index 0995fbc3df7..16b5e5796d9 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/io/swagger/client/ApiClient.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/io/swagger/client/ApiClient.java @@ -671,48 +671,56 @@ public class ApiClient { Entity entity = serialize(body, formParams, contentType); - Response response; + Response response = null; - if ("GET".equals(method)) { - response = invocationBuilder.get(); - } else if ("POST".equals(method)) { - response = invocationBuilder.post(entity); - } else if ("PUT".equals(method)) { - response = invocationBuilder.put(entity); - } else if ("DELETE".equals(method)) { - response = invocationBuilder.delete(); - } else if ("PATCH".equals(method)) { - response = invocationBuilder.header("X-HTTP-Method-Override", "PATCH").post(entity); - } else { - throw new ApiException(500, "unknown method type " + method); - } - - statusCode = response.getStatusInfo().getStatusCode(); - responseHeaders = buildResponseHeaders(response); - - if (response.getStatus() == Status.NO_CONTENT.getStatusCode()) { - return null; - } else if (response.getStatusInfo().getFamily() == Status.Family.SUCCESSFUL) { - if (returnType == null) - return null; - else - return deserialize(response, returnType); - } else { - String message = "error"; - String respBody = null; - if (response.hasEntity()) { - try { - respBody = String.valueOf(response.readEntity(String.class)); - message = respBody; - } catch (RuntimeException e) { - // e.printStackTrace(); - } + try { + if ("GET".equals(method)) { + response = invocationBuilder.get(); + } else if ("POST".equals(method)) { + response = invocationBuilder.post(entity); + } else if ("PUT".equals(method)) { + response = invocationBuilder.put(entity); + } else if ("DELETE".equals(method)) { + response = invocationBuilder.delete(); + } else if ("PATCH".equals(method)) { + response = invocationBuilder.header("X-HTTP-Method-Override", "PATCH").post(entity); + } else { + throw new ApiException(500, "unknown method type " + method); + } + + statusCode = response.getStatusInfo().getStatusCode(); + responseHeaders = buildResponseHeaders(response); + + if (response.getStatus() == Status.NO_CONTENT.getStatusCode()) { + return null; + } else if (response.getStatusInfo().getFamily() == Status.Family.SUCCESSFUL) { + if (returnType == null) + return null; + else + return deserialize(response, returnType); + } else { + String message = "error"; + String respBody = null; + if (response.hasEntity()) { + try { + respBody = String.valueOf(response.readEntity(String.class)); + message = respBody; + } catch (RuntimeException e) { + // e.printStackTrace(); + } + } + throw new ApiException( + response.getStatus(), + message, + buildResponseHeaders(response), + respBody); + } + } finally { + try { + response.close(); + } catch (Exception e) { + // it's not critical, since the response object is local in method invokeAPI; that's fine, just continue } - throw new ApiException( - response.getStatus(), - message, - buildResponseHeaders(response), - respBody); } } From a383daa5b07ccb9b4b6e1d2cc6cfd6dc19137f90 Mon Sep 17 00:00:00 2001 From: wing328 Date: Thu, 22 Jun 2017 22:23:08 +0800 Subject: [PATCH 21/33] comment out objc tests --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index afa94fd6d1f..8e66ed85df4 100644 --- a/pom.xml +++ b/pom.xml @@ -814,8 +814,9 @@ samples/client/petstore/swift/default/SwaggerClientTests samples/client/petstore/swift/promisekit/SwaggerClientTests samples/client/petstore/swift/rxswift/SwaggerClientTests + From 025bf3aa8018aa0be2e6e7d519bdb98a9e83245e Mon Sep 17 00:00:00 2001 From: stkrwork Date: Thu, 22 Jun 2017 17:00:54 +0200 Subject: [PATCH 22/33] Final fix for cpprest for issue #5862 (#5893) * - Added Restbed Generator * - Added Json processing functions to model - Removed unnused code from restbed codegen class - Added response header processing to api template * Changed it to respect alphabetical order * Made the string joining java 7 compatible * Added samples * First step in fixing the cpp rest template regenerated new samples TODO: Fix the other functions * Updated samples * Added isMapContainer check * Fixed item selection in json object for MapContainer * - Fixed Syntax error in C++ - Fixed Syntax error in Mustache, that escaped characters --- .../resources/cpprest/model-source.mustache | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache index 38388fa4fa5..e90e2a5371c 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache @@ -90,8 +90,8 @@ web::json::value {{classname}}::toJson() const for( auto& item : m_{{name}} ) { web::json::value tmp = web::json::value::object(); - tmp[U("key")] = ModelBase::toJson(item.first()); - tmp[U("value")] = ModelBase::toJson(item.second()); + tmp[U("key")] = ModelBase::toJson(item.first); + tmp[U("value")] = ModelBase::toJson(item.second); jsonArray.push_back(tmp); } {{#required}} @@ -200,32 +200,32 @@ void {{classname}}::fromJson(web::json::value& val) {{/required}} for( auto& item : val[U("{{baseName}}")].as_array() ) { - utility::string_t key = ""; + utility::string_t key; if(item.has_field(U("key"))) { key = ModelBase::stringFromJson(item[U("key")]); } {{#items.isPrimitiveType}} - m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); {{/items.isPrimitiveType}} {{^items.isPrimitiveType}} {{#items.isString}} - m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); {{/items.isString}} {{^items.isString}} {{#items.isDateTime}} - m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); {{/items.isDateTime}} {{^items.isDateTime}} if(item.is_null()) { - m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); + m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); } else { {{{items.datatype}}} newItem({{{items.defaultValue}}}); newItem->fromJson(item[U("value")]); - m_{{name}}.insert(std::pair( key, newItem )); + m_{{name}}.insert(std::pair( key, newItem )); } {{/items.isDateTime}} {{/items.isString}} @@ -334,8 +334,8 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co for( auto& item : m_{{name}} ) { web::json::value tmp = web::json::value::object(); - tmp[U("key")] = ModelBase::toJson(item.first()); - tmp[U("value")] = ModelBase::toJson(item.second()); + tmp[U("key")] = ModelBase::toJson(item.first); + tmp[U("value")] = ModelBase::toJson(item.second); jsonArray.push_back(tmp); } {{#required}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), web::json::value::array(jsonArray), U("application/json"))); @@ -463,32 +463,32 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, web::json::value jsonArray = web::json::value::parse(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); for( auto& item : jsonArray.as_array() ) { - utility::string_t key = ""; + utility::string_t key; if(item.has_field(U("key"))) { key = ModelBase::stringFromJson(item[U("key")]); } {{#items.isPrimitiveType}} - m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); {{/items.isPrimitiveType}} {{^items.isPrimitiveType}} {{#items.isString}} - m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); {{/items.isString}} {{^items.isString}} {{#items.isDateTime}} - m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); {{/items.isDateTime}} {{^items.isDateTime}} if(item.is_null()) { - m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); + m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); } else { {{{items.datatype}}} newItem({{{items.defaultValue}}}); newItem->fromJson(item[U("value")]); - m_{{name}}.insert(std::pair( key, newItem )); + m_{{name}}.insert(std::pair( key, newItem )); } {{/items.isDateTime}} {{/items.isString}} From d67cb9c30b52213caed1f288a2727c05747e20e8 Mon Sep 17 00:00:00 2001 From: Hugo Kiyodi Oshiro Date: Thu, 22 Jun 2017 15:27:50 -0300 Subject: [PATCH 23/33] Fix wrong es6 template path (#5904) --- .../io/swagger/codegen/languages/JavascriptClientCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 88d8ef0e550..f6545d57aa1 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 @@ -431,7 +431,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo public void setUseES6(boolean useES6) { this.useES6 = useES6; if (useES6) { - embeddedTemplateDir = templateDir = "Javascript-es6"; + embeddedTemplateDir = templateDir = "Javascript/es6"; } else { embeddedTemplateDir = templateDir = "Javascript"; } From 69ce9213719e1b804fbfdf7189d20c257280d201 Mon Sep 17 00:00:00 2001 From: Stanislav Bondarenko Date: Thu, 22 Jun 2017 23:31:30 -0400 Subject: [PATCH 24/33] Python - Increase range of valid status codes (#5901) swagger-client shouldn't throw ApiException if status code in range 200-299 --- modules/swagger-codegen/src/main/resources/python/rest.mustache | 2 +- samples/client/petstore/python/petstore_api/rest.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/python/rest.mustache b/modules/swagger-codegen/src/main/resources/python/rest.mustache index 6c2c21d3055..b801938dc52 100644 --- a/modules/swagger-codegen/src/main/resources/python/rest.mustache +++ b/modules/swagger-codegen/src/main/resources/python/rest.mustache @@ -206,7 +206,7 @@ class RESTClientObject(object): # log response body logger.debug("response body: %s", r.data) - if r.status not in range(200, 206): + if not 200 <= r.status <= 299: raise ApiException(http_resp=r) return r diff --git a/samples/client/petstore/python/petstore_api/rest.py b/samples/client/petstore/python/petstore_api/rest.py index 3ed3cf31849..c567f731294 100644 --- a/samples/client/petstore/python/petstore_api/rest.py +++ b/samples/client/petstore/python/petstore_api/rest.py @@ -215,7 +215,7 @@ class RESTClientObject(object): # log response body logger.debug("response body: %s", r.data) - if r.status not in range(200, 206): + if not 200 <= r.status <= 299: raise ApiException(http_resp=r) return r From 5b4e8a8ed5f36b566fe71be1b5e01918f3397d0c Mon Sep 17 00:00:00 2001 From: wing328 Date: Fri, 23 Jun 2017 22:09:07 +0800 Subject: [PATCH 25/33] [JavaScript] fix JS shell scripts, add log to show template version (#5907) * fix JS shell script, add log to show es version * change CLI option default value for useES6 * fix shell script in JS ES6 promise * fix windows batch files * set useES6 to false --- bin/javascript-es6-petstore.sh | 2 +- bin/javascript-promise-es6-petstore.sh | 3 +-- bin/windows/javascript-es6-petstore.bat | 2 +- bin/windows/javascript-petstore-all.bat | 1 + bin/windows/javascript-promise-es6-petstore.bat | 2 +- .../src/main/java/io/swagger/codegen/DefaultCodegen.java | 1 - .../codegen/languages/JavascriptClientCodegen.java | 8 ++++++-- samples/client/petstore/javascript-es6/.babelrc | 3 +++ samples/client/petstore/javascript-promise-es6/.babelrc | 3 +++ 9 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 samples/client/petstore/javascript-es6/.babelrc create mode 100644 samples/client/petstore/javascript-promise-es6/.babelrc diff --git a/bin/javascript-es6-petstore.sh b/bin/javascript-es6-petstore.sh index a68f2c5b5ca..c9f3b7b6ffd 100755 --- a/bin/javascript-es6-petstore.sh +++ b/bin/javascript-es6-petstore.sh @@ -29,6 +29,6 @@ export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/ ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript/es6 \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript \ -o samples/client/petstore/javascript-es6 \ ---additional-properties useEs6=true" +--additional-properties useES6=true" java -DappName=PetstoreClient $JAVA_OPTS -jar $executable $ags diff --git a/bin/javascript-promise-es6-petstore.sh b/bin/javascript-promise-es6-petstore.sh index e88788ddde5..ec4e1bda37c 100755 --- a/bin/javascript-promise-es6-petstore.sh +++ b/bin/javascript-promise-es6-petstore.sh @@ -29,7 +29,6 @@ export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/ ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript/es6 \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript \ -o samples/client/petstore/javascript-promise-es6 \ ---additional-properties useEs6=true \ ---additional-properties usePromises=true" +--additional-properties usePromises=true,useES6=true" java -DappName=PetstoreClient $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/javascript-es6-petstore.bat b/bin/windows/javascript-es6-petstore.bat index ff5d07bc51e..5b2e26bb9c8 100644 --- a/bin/windows/javascript-es6-petstore.bat +++ b/bin/windows/javascript-es6-petstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript-es6 --additional-properties useEs6=true +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript\es6 --additional-properties useES6=true java -DappName=PetstoreClient %JAVA_OPTS% -jar %executable% %ags% diff --git a/bin/windows/javascript-petstore-all.bat b/bin/windows/javascript-petstore-all.bat index e0181312d7e..efbde1ac83e 100755 --- a/bin/windows/javascript-petstore-all.bat +++ b/bin/windows/javascript-petstore-all.bat @@ -1,3 +1,4 @@ call .\bin\windows\javascript-petstore.bat call .\bin\windows\javascript-promise-petstore.bat call .\bin\windows\javascript-es6-petstore.bat +call .\bin\windows\javascript-promise-es6-petstore.bat diff --git a/bin/windows/javascript-promise-es6-petstore.bat b/bin/windows/javascript-promise-es6-petstore.bat index f827e6b8151..1ace9acacca 100644 --- a/bin/windows/javascript-promise-es6-petstore.bat +++ b/bin/windows/javascript-promise-es6-petstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript-promise-es6 --additional-properties useEs6=true --additional-properties usePromises=true +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript-promise-es6 --additional-properties useES6=true,usePromises=true java -DappName=PetstoreClient %JAVA_OPTS% -jar %executable% %ags% diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 182f422b381..b430df162b2 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -2511,7 +2511,6 @@ public class DefaultCodegen { } } else { - LOGGER.info("proessing body parameter ..."); if (!(param instanceof BodyParameter)) { LOGGER.error("Cannot use Parameter " + param + " as Body Parameter"); } 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 f6545d57aa1..548155035f2 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 @@ -96,7 +96,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo protected String modelDocPath = "docs/"; protected String apiTestPath = "api/"; protected String modelTestPath = "model/"; - protected boolean useES6; + protected boolean useES6 = false; // default is ES5 public JavascriptClientCodegen() { super(); @@ -197,7 +197,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo .defaultValue(Boolean.TRUE.toString())); cliOptions.add(new CliOption(USE_ES6, "use JavaScript ES6 (ECMAScript 6)") - .defaultValue(Boolean.TRUE.toString())); + .defaultValue(Boolean.FALSE.toString())); } @Override @@ -268,6 +268,8 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo } if (additionalProperties.containsKey(USE_ES6)) { setUseES6(convertPropertyToBooleanAndWriteBack(USE_ES6)); + } else { + setUseES6(false); } } @@ -432,8 +434,10 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo this.useES6 = useES6; if (useES6) { embeddedTemplateDir = templateDir = "Javascript/es6"; + LOGGER.info("Using JS ES6 templates"); } else { embeddedTemplateDir = templateDir = "Javascript"; + LOGGER.info("Using JS ES5 templates"); } } diff --git a/samples/client/petstore/javascript-es6/.babelrc b/samples/client/petstore/javascript-es6/.babelrc new file mode 100644 index 00000000000..bcb6ee8de93 --- /dev/null +++ b/samples/client/petstore/javascript-es6/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015", "stage-0"] +} \ No newline at end of file diff --git a/samples/client/petstore/javascript-promise-es6/.babelrc b/samples/client/petstore/javascript-promise-es6/.babelrc new file mode 100644 index 00000000000..bcb6ee8de93 --- /dev/null +++ b/samples/client/petstore/javascript-promise-es6/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015", "stage-0"] +} \ No newline at end of file From e08e9cfefe9bd40e8446a6290a6347c48c19274f Mon Sep 17 00:00:00 2001 From: wing328 Date: Fri, 23 Jun 2017 22:22:05 +0800 Subject: [PATCH 26/33] set useES6 in all JS scripts/batch files --- bin/javascript-petstore.sh | 2 +- bin/javascript-promise-petstore.sh | 2 +- bin/windows/javascript-petstore.bat | 2 +- bin/windows/javascript-promise-petstore.bat | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/javascript-petstore.sh b/bin/javascript-petstore.sh index ca961c2484d..984cfca32de 100755 --- a/bin/javascript-petstore.sh +++ b/bin/javascript-petstore.sh @@ -26,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples/client/petstore/javascript -DappName=PetstoreClient" +ags="$@ generate -t modules/swagger-codegen/src/main/resources/Javascript -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples/client/petstore/javascript -DappName=PetstoreClient --additional-properties useES6=false" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/javascript-promise-petstore.sh b/bin/javascript-promise-petstore.sh index 40ba5a6c137..fa8e346629c 100755 --- a/bin/javascript-promise-petstore.sh +++ b/bin/javascript-promise-petstore.sh @@ -31,7 +31,7 @@ ags="$@ generate \ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml \ -l javascript \ -o samples/client/petstore/javascript-promise \ ---additional-properties usePromises=true \ +--additional-properties usePromises=true,useES6=false \ -DappName=PetstoreClient" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/javascript-petstore.bat b/bin/windows/javascript-petstore.bat index 4e5e5530f74..66ac74bdccc 100755 --- a/bin/windows/javascript-petstore.bat +++ b/bin/windows/javascript-petstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript -DappName=PetstoreClient +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript -DappName=PetstoreClient --additional-properties useES6=false java %JAVA_OPTS% -jar %executable% %ags% diff --git a/bin/windows/javascript-promise-petstore.bat b/bin/windows/javascript-promise-petstore.bat index f8bb90bc719..219018032c0 100755 --- a/bin/windows/javascript-promise-petstore.bat +++ b/bin/windows/javascript-promise-petstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript-promise --additional-properties usePromises=true -DappName=PetstoreClient +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -l javascript -o samples\client\petstore\javascript-promise --additional-properties usePromises=true,useES6=false -DappName=PetstoreClient java %JAVA_OPTS% -jar %executable% %ags% From 65e888519afb47def1aa5960e4e2fb330228ce7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Petryka?= Date: Sun, 25 Jun 2017 09:03:37 +0200 Subject: [PATCH 27/33] Added one presentation to README.md (#5921) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e693566c3e..366f1d8e06c 100644 --- a/README.md +++ b/README.md @@ -843,6 +843,7 @@ Presentations/Videos/Tutorials/Books - 2017/04/27 - [Swagger Codegen のPHP実装があまりにアレだったので、ライブラリ自作して公開してみた](http://qiita.com/imunew/items/2e9c472e0097e329f2cd) by [imunew](http://qiita.com/imunew) - 2017/05/17 - [Diseño de APIs con OpenAPI](https://www.slideshare.net/pjmolina/diseo-de-apis-con-openapi) by [Pedro J. Molina](https://github.com/pjmolina) @ [JSDayES 2017](http://2017.jsday.es/) - 2017/05/22 - [Presentation of the Vert.x-Swagger project](http://vertx.io/blog/presentation-of-the-vert-x-swagger-project/) by [@phiz71](http://github.com/phiz71) +- 2017/06/21 - [Swagger Presentation (Warsaw Ruby Users Group](https://www.youtube.com/watch?v=uCnnDMFQB8U) by [@rafalpetryka](http://github.com/rafalpetryka) # Swagger Codegen Core Team From 0c5ba727f98f35b260296a9d38604fc182cf2147 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 26 Jun 2017 03:33:03 +0800 Subject: [PATCH 28/33] fix typo in java generator help text --- .../java/io/swagger/codegen/languages/JavaClientCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java index 4b6b067e0d7..1b2bd9af046 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java @@ -65,7 +65,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen supportedLibraries.put("jersey1", "HTTP client: Jersey client 1.19.1. JSON processing: Jackson 2.7.0. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'."); supportedLibraries.put("feign", "HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.8.7"); supportedLibraries.put("jersey2", "HTTP client: Jersey client 2.22.2. JSON processing: Jackson 2.7.0"); - supportedLibraries.put("okhttp-gson", "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.6.2. Enable Parcelable modles on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'."); + supportedLibraries.put("okhttp-gson", "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.6.2. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'."); supportedLibraries.put(RETROFIT_1, "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.3.1 (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead."); supportedLibraries.put(RETROFIT_2, "HTTP client: OkHttp 3.2.0. JSON processing: Gson 2.6.1 (Retrofit 2.0.2). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)"); supportedLibraries.put("resttemplate", "HTTP client: Spring RestTemplate 4.3.7-RELEASE. JSON processing: Jackson 2.8.8"); From 68d878c24465898a7312cb7e816b9982baa609aa Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 26 Jun 2017 09:55:34 +0200 Subject: [PATCH 29/33] update to latest CXF release (#5923) --- .../src/main/resources/JavaJaxRS/cxf/pom.mustache | 2 +- .../src/main/resources/JavaJaxRS/cxf/server/pom.mustache | 2 +- samples/client/petstore/jaxrs-cxf-client/pom.xml | 2 +- samples/client/petstore/jaxrs-cxf/pom.xml | 2 +- samples/server/petstore/jaxrs-cxf-annotated-base-path/pom.xml | 2 +- samples/server/petstore/jaxrs-cxf-non-spring-app/pom.xml | 2 +- samples/server/petstore/jaxrs-cxf/pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pom.mustache index cea4bea9134..328511bdf55 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pom.mustache @@ -187,7 +187,7 @@ {{#useBeanValidation}} 1.1.0.Final {{/useBeanValidation}} - 3.1.6 + 3.1.11 2.8.4 UTF-8 diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache index ec2559bd6db..5a2ed782474 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache @@ -244,7 +244,7 @@ {{#generateSpringBootApplication}} 1.3.3.RELEASE {{/generateSpringBootApplication}} - 3.1.8 + 3.1.11 2.8.4 UTF-8 diff --git a/samples/client/petstore/jaxrs-cxf-client/pom.xml b/samples/client/petstore/jaxrs-cxf-client/pom.xml index aec8f7cf37e..4398ea01e8f 100644 --- a/samples/client/petstore/jaxrs-cxf-client/pom.xml +++ b/samples/client/petstore/jaxrs-cxf-client/pom.xml @@ -191,7 +191,7 @@ 1.1.7 2.5 1.1.0.Final - 3.1.8 + 3.1.11 2.8.4 UTF-8 diff --git a/samples/client/petstore/jaxrs-cxf/pom.xml b/samples/client/petstore/jaxrs-cxf/pom.xml index 6d5cf8442e7..a530a3e6fb2 100644 --- a/samples/client/petstore/jaxrs-cxf/pom.xml +++ b/samples/client/petstore/jaxrs-cxf/pom.xml @@ -168,7 +168,7 @@ 4.12 1.1.7 2.5 - 3.1.6 + 3.1.11 2.8.4 UTF-8 diff --git a/samples/server/petstore/jaxrs-cxf-annotated-base-path/pom.xml b/samples/server/petstore/jaxrs-cxf-annotated-base-path/pom.xml index b12ecaa443f..307ee24ba70 100644 --- a/samples/server/petstore/jaxrs-cxf-annotated-base-path/pom.xml +++ b/samples/server/petstore/jaxrs-cxf-annotated-base-path/pom.xml @@ -171,7 +171,7 @@ 4.12 1.1.7 2.5 - 3.1.8 + 3.1.11 UTF-8 diff --git a/samples/server/petstore/jaxrs-cxf-non-spring-app/pom.xml b/samples/server/petstore/jaxrs-cxf-non-spring-app/pom.xml index d2fcf897e07..97d19784600 100644 --- a/samples/server/petstore/jaxrs-cxf-non-spring-app/pom.xml +++ b/samples/server/petstore/jaxrs-cxf-non-spring-app/pom.xml @@ -171,7 +171,7 @@ 4.12 1.1.7 2.5 - 3.1.8 + 3.1.11 UTF-8 diff --git a/samples/server/petstore/jaxrs-cxf/pom.xml b/samples/server/petstore/jaxrs-cxf/pom.xml index 59b8b3545d8..999c3123463 100644 --- a/samples/server/petstore/jaxrs-cxf/pom.xml +++ b/samples/server/petstore/jaxrs-cxf/pom.xml @@ -191,7 +191,7 @@ 1.1.7 2.5 1.1.0.Final - 3.1.8 + 3.1.11 2.8.4 UTF-8 From 9e420f214989ce6e70f068dc785ca78e4c01817b Mon Sep 17 00:00:00 2001 From: Felix Becker Date: Mon, 26 Jun 2017 12:29:47 +0200 Subject: [PATCH 30/33] Use id -g for determining the gid instead of -u (#5899) fix wrong group id lookup in run-in-docker.sh --- run-in-docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-in-docker.sh b/run-in-docker.sh index 8cf6cc64de2..6777d9a31b5 100755 --- a/run-in-docker.sh +++ b/run-in-docker.sh @@ -11,7 +11,7 @@ docker run --rm -it \ -w /gen \ -e GEN_DIR=/gen \ -e MAVEN_CONFIG=/var/maven/.m2 \ - -u "$(id -u):$(id -u)" \ + -u "$(id -u):$(id -g)" \ -v "${PWD}:/gen" \ -v "${maven_cache_repo}:/var/maven/.m2/repository" \ --entrypoint /gen/docker-entrypoint.sh \ From 6eb987919f12bd17aa4ada89bf904f7214ceb316 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 26 Jun 2017 21:48:44 +0800 Subject: [PATCH 31/33] minor fix to js promise test cases --- .../javascript-promise/test/ApiClientTest.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/samples/client/petstore/javascript-promise/test/ApiClientTest.js b/samples/client/petstore/javascript-promise/test/ApiClientTest.js index ca736876440..b58a27a025b 100644 --- a/samples/client/petstore/javascript-promise/test/ApiClientTest.js +++ b/samples/client/petstore/javascript-promise/test/ApiClientTest.js @@ -10,7 +10,7 @@ describe('ApiClient', function() { describe('defaults', function() { it('should have correct default values with the default API client', function() { expect(apiClient).to.be.ok(); - expect(apiClient.basePath).to.be('http://petstore.swagger.io/v2'); + expect(apiClient.basePath).to.be('http://petstore.swagger.io:80/v2'); expect(apiClient.authentications).to.eql({ petstore_auth: {type: 'oauth2'}, http_basic_test: {type: 'basic'}, @@ -45,8 +45,8 @@ describe('ApiClient', function() { it('should have correct default values with new API client and can customize it', function() { var newClient = new SwaggerPetstore.ApiClient; - expect(newClient.basePath).to.be('http://petstore.swagger.io/v2'); - expect(newClient.buildUrl('/abc', {})).to.be('http://petstore.swagger.io/v2/abc'); + expect(newClient.basePath).to.be('http://petstore.swagger.io:80/v2'); + expect(newClient.buildUrl('/abc', {})).to.be('http://petstore.swagger.io:80/v2/abc'); newClient.basePath = 'http://example.com'; expect(newClient.basePath).to.be('http://example.com'); @@ -102,16 +102,16 @@ describe('ApiClient', function() { describe('#buildUrl', function() { it('should work without path parameters in the path', function() { expect(apiClient.buildUrl('/abc', {})).to - .be('http://petstore.swagger.io/v2/abc'); + .be('http://petstore.swagger.io:80/v2/abc'); expect(apiClient.buildUrl('/abc/def?ok', {id: 123})).to - .be('http://petstore.swagger.io/v2/abc/def?ok'); + .be('http://petstore.swagger.io:80/v2/abc/def?ok'); }); it('should work with path parameters in the path', function() { expect(apiClient.buildUrl('/{id}', {id: 123})).to - .be('http://petstore.swagger.io/v2/123'); + .be('http://petstore.swagger.io:80/v2/123'); expect(apiClient.buildUrl('/abc/{id}/{name}?ok', {id: 456, name: 'a b'})).to. - be('http://petstore.swagger.io/v2/abc/456/a%20b?ok'); + be('http://petstore.swagger.io:80/v2/abc/456/a%20b?ok'); }); }); From 522d704f7ad5d5decd1a9d5e6404790dc07705cc Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 26 Jun 2017 23:18:45 +0800 Subject: [PATCH 32/33] [Java] Update dependencies for Java clients (#5926) * update dep for java jersey1, jersey2 * update sbt dependency for jersey2 * update dep for java okhttp-gson, resteasy, resttemplate * update dep for java retrofit 1.x, 2.x * update java petstore samples --- .gitignore | 2 ++ .../main/resources/Java/build.gradle.mustache | 8 +++---- .../libraries/jersey2/build.gradle.mustache | 10 ++++----- .../Java/libraries/jersey2/build.sbt.mustache | 22 +++++++++---------- .../Java/libraries/jersey2/pom.mustache | 10 ++++----- .../okhttp-gson/build.gradle.mustache | 6 ++--- .../libraries/okhttp-gson/build.sbt.mustache | 6 ++--- .../Java/libraries/okhttp-gson/pom.mustache | 8 +++---- .../Java/libraries/resteasy/pom.mustache | 10 ++++----- .../resttemplate/build.gradle.mustache | 8 +++---- .../Java/libraries/resttemplate/pom.mustache | 8 +++---- .../Java/libraries/retrofit/pom.mustache | 6 ++--- .../libraries/retrofit2/build.gradle.mustache | 12 +++++----- .../libraries/retrofit2/build.sbt.mustache | 20 ++++++++--------- .../Java/libraries/retrofit2/pom.mustache | 12 +++++----- .../src/main/resources/Java/pom.mustache | 10 ++++----- .../client/petstore/java/jersey1/build.gradle | 8 +++---- samples/client/petstore/java/jersey1/pom.xml | 8 +++---- .../petstore/java/jersey2-java6/build.gradle | 10 ++++----- .../petstore/java/jersey2-java6/build.sbt | 20 ++++++++--------- .../petstore/java/jersey2-java6/pom.xml | 10 ++++----- .../petstore/java/jersey2-java8/build.gradle | 6 ++--- .../petstore/java/jersey2-java8/build.sbt | 16 +++++++------- .../petstore/java/jersey2-java8/pom.xml | 6 ++--- .../client/petstore/java/jersey2/build.gradle | 8 +++---- .../client/petstore/java/jersey2/build.sbt | 18 +++++++-------- samples/client/petstore/java/jersey2/pom.xml | 8 +++---- .../okhttp-gson-parcelableModel/build.gradle | 6 ++--- .../okhttp-gson-parcelableModel/build.sbt | 6 ++--- .../java/okhttp-gson-parcelableModel/pom.xml | 6 ++--- .../petstore/java/okhttp-gson/build.gradle | 6 ++--- .../petstore/java/okhttp-gson/build.sbt | 6 ++--- .../client/petstore/java/okhttp-gson/pom.xml | 6 ++--- samples/client/petstore/java/resteasy/pom.xml | 8 +++---- .../petstore/java/resttemplate/build.gradle | 8 +++---- .../client/petstore/java/resttemplate/pom.xml | 8 +++---- .../java/retrofit2-play24/build.gradle | 6 ++--- .../petstore/java/retrofit2-play24/build.sbt | 10 ++++----- .../petstore/java/retrofit2-play24/pom.xml | 8 +++---- .../petstore/java/retrofit2/build.gradle | 6 ++--- .../client/petstore/java/retrofit2/build.sbt | 10 ++++----- .../client/petstore/java/retrofit2/pom.xml | 6 ++--- .../petstore/java/retrofit2rx/build.gradle | 8 +++---- .../petstore/java/retrofit2rx/build.sbt | 12 +++++----- .../client/petstore/java/retrofit2rx/pom.xml | 8 +++---- .../petstore/java/retrofit2rx2/build.gradle | 8 +++---- .../petstore/java/retrofit2rx2/build.sbt | 12 +++++----- .../client/petstore/java/retrofit2rx2/pom.xml | 8 +++---- 48 files changed, 220 insertions(+), 218 deletions(-) diff --git a/.gitignore b/.gitignore index 62978c501be..8760dc40baa 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,8 @@ samples/client/petstore/java/retrofit2/build/ samples/client/petstore/java/retrofit2rx/build/ samples/client/petstore/java/default/build/ samples/client/petstore/scala/build/ +samples/client/petstore/java/resttemplate/hello.txt +samples/client/petstore/java/retrofit2/hello.txt #PHP samples/client/petstore/php/SwaggerClient-php/composer.lock diff --git a/modules/swagger-codegen/src/main/resources/Java/build.gradle.mustache b/modules/swagger-codegen/src/main/resources/Java/build.gradle.mustache index 944f12b3e66..751730ec230 100644 --- a/modules/swagger-codegen/src/main/resources/Java/build.gradle.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/build.gradle.mustache @@ -106,10 +106,10 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.7.5" - jersey_version = "1.19.1" - jodatime_version = "2.9.4" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + jersey_version = "1.19.4" + jodatime_version = "2.9.9" junit_version = "4.12" } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache index 97c6f4edf85..b2db2d26f97 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache @@ -105,15 +105,15 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.7.5" - jersey_version = "2.22.2" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + jersey_version = "2.25.1" {{^java8}} - jodatime_version = "2.9.4" + jodatime_version = "2.9.9" {{/java8}} {{#supportJava6}} commons_io_version=2.5 - commons_lang3_version=3.5 + commons_lang3_version=3.6 {{/supportJava6}} junit_version = "4.12" } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache index c1cb91dd316..22d69f8ba66 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache @@ -9,23 +9,23 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", - "org.glassfish.jersey.core" % "jersey-client" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.22.2", - "com.fasterxml.jackson.core" % "jackson-core" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.5", + "io.swagger" % "swagger-annotations" % "1.5.15", + "org.glassfish.jersey.core" % "jersey-client" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.25.1", + "com.fasterxml.jackson.core" % "jackson-core" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.9", {{#java8}} - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.7.5", + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.8.9", {{/java8}} {{^java8}} - "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.7.5", - "joda-time" % "joda-time" % "2.9.4", + "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.8.9", + "joda-time" % "joda-time" % "2.9.9", {{/java8}} "com.brsanthu" % "migbase64" % "2.2", {{#supportJava6}} - "org.apache.commons" % "commons-lang3" % "3.5", + "org.apache.commons" % "commons-lang3" % "3.6", "commons-io" % "commons-io" % "2.5", {{/supportJava6}} "junit" % "junit" % "4.12" % "test", diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache index d4d043bb0fa..c990bb13ed8 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache @@ -271,15 +271,15 @@ - 1.5.12 - 2.22.2 - 2.7.5 + 1.5.15 + 2.25.1 + 2.8.9 {{^java8}} - 2.9.4 + 2.9.9 {{/java8}} {{#supportJava6}} 2.5 - 3.5 + 3.6 {{/supportJava6}} 1.0.0 4.12 diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache index cf05d647d42..0d169cf9c96 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache @@ -100,12 +100,12 @@ if(hasProperty('target') && target == 'android') { } dependencies { - compile 'io.swagger:swagger-annotations:1.5.8' + compile 'io.swagger:swagger-annotations:1.5.15' compile 'com.squareup.okhttp:okhttp:2.7.5' compile 'com.squareup.okhttp:logging-interceptor:2.7.5' - compile 'com.google.code.gson:gson:2.6.2' + compile 'com.google.code.gson:gson:2.8.1' {{^java8}} - compile 'joda-time:joda-time:2.9.3' + compile 'joda-time:joda-time:2.9.9' {{/java8}} testCompile 'junit:junit:4.12' } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache index 56c712f52d2..c2eef2ede15 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache @@ -9,12 +9,12 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", + "io.swagger" % "swagger-annotations" % "1.5.15", "com.squareup.okhttp" % "okhttp" % "2.7.5", "com.squareup.okhttp" % "logging-interceptor" % "2.7.5", - "com.google.code.gson" % "gson" % "2.6.2", + "com.google.code.gson" % "gson" % "2.8.1", {{^java8}} - "joda-time" % "joda-time" % "2.9.3" % "compile", + "joda-time" % "joda-time" % "2.9.9" % "compile", {{/java8}} "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache index d8086d4550f..e25c5882a06 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache @@ -210,7 +210,7 @@ org.hibernate hibernate-validator - 5.2.2.Final + 5.4.1.Final javax.el @@ -239,10 +239,10 @@ {{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}} ${java.version} ${java.version} - 1.5.12 + 1.5.15 2.7.5 - 2.6.2 - 2.9.3 + 2.8.1 + 2.9.9 1.0.0 4.12 UTF-8 diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/resteasy/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/resteasy/pom.mustache index b5c9a9bb1a9..ffea816e218 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/resteasy/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/resteasy/pom.mustache @@ -192,7 +192,7 @@ org.jboss.resteasy resteasy-jackson-provider - 2.3.4.Final + 3.1.3.Final @@ -203,15 +203,15 @@ - 1.5.9 - 3.0.19.Final + 1.5.15 + 3.1.3.Final 2.7.5 {{^java8}} - 2.9.4 + 2.9.9 {{/java8}} {{#supportJava6}} 2.5 - 3.5 + 3.6 {{/supportJava6}} 1.0.0 4.12 diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache index 687b83ff58f..8f5655d7f73 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache @@ -106,10 +106,10 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.8.8" - spring_web_version = "4.3.7.RELEASE" - jodatime_version = "2.9.4" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + spring_web_version = "4.3.9.RELEASE" + jodatime_version = "2.9.9" junit_version = "4.12" } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/pom.mustache index 0122c5c9008..62705aadbeb 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/resttemplate/pom.mustache @@ -248,11 +248,11 @@ UTF-8 - 1.5.8 - 4.3.7.RELEASE - 2.8.8 + 1.5.15 + 4.3.9.RELEASE + 2.8.9 {{^java8}} - 2.9.4 + 2.9.9 {{/java8}} 1.0.0 4.12 diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache index 13f1ac3282b..67daaeaf209 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache @@ -222,10 +222,10 @@ - 1.5.12 + 1.5.15 1.9.0 - 2.7.5 - 2.9.3 + 2.8.9 + 2.9.9 1.0.1 1.0.0 4.12 diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache index b0f88ae54ee..9e0ad8a572c 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache @@ -102,23 +102,23 @@ if(hasProperty('target') && target == 'android') { ext { oltu_version = "1.0.1" {{^usePlay24WS}} - retrofit_version = "2.2.0" + retrofit_version = "2.3.0" {{/usePlay24WS}} {{#usePlay24WS}} retrofit_version = "2.1.0" - jackson_version = "2.7.5" + jackson_version = "2.8.9" play_version = "2.4.11" {{/usePlay24WS}} - swagger_annotations_version = "1.5.12" + swagger_annotations_version = "1.5.15" junit_version = "4.12" {{#useRxJava}} - rx_java_version = "1.2.9" + rx_java_version = "1.3.0" {{/useRxJava}} {{#useRxJava2}} - rx_java_version = "2.0.7" + rx_java_version = "2.1.1" {{/useRxJava2}} {{^java8}} - jodatime_version = "2.9.4" + jodatime_version = "2.9.9" {{/java8}} } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache index e5c7f5af221..2146acd4971 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache @@ -10,9 +10,9 @@ lazy val root = (project in file(".")). resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( {{^usePlay24WS}} - "com.squareup.retrofit2" % "retrofit" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-scalars" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-gson" % "2.2.0" % "compile", + "com.squareup.retrofit2" % "retrofit" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-scalars" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-gson" % "2.3.0" % "compile", {{/usePlay24WS}} {{#usePlay24WS}} "com.typesafe.play" % "play-java-ws_2.11" % "2.4.11" % "compile", @@ -20,22 +20,22 @@ lazy val root = (project in file(".")). "com.squareup.retrofit2" % "converter-scalars" % "2.1.0" % "compile", "com.squareup.retrofit2" % "converter-gson" % "2.1.0" % "compile", "com.squareup.retrofit2" % "converter-jackson" % "2.1.0" % "compile", - "com.fasterxml.jackson.core" % "jackson-core" % "2.7.5" % "compile", - "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.5" % "compile", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.5" % "compile", + "com.fasterxml.jackson.core" % "jackson-core" % "2.8.9" % "compile", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.9" % "compile", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.9" % "compile", {{/usePlay24WS}} {{#useRxJava}} "com.squareup.retrofit2" % "adapter-rxjava" % "{{^usePlay24WS}}2.2.0{{/usePlay24WS}}{{#usePlay24WS}}2.1.0{{/usePlay24WS}}" % "compile", - "io.reactivex" % "rxjava" % "1.2.9" % "compile", + "io.reactivex" % "rxjava" % "1.3.0" % "compile", {{/useRxJava}} {{#useRxJava2}} "com.jakewharton.retrofit" % "retrofit2-rxjava2-adapter" % "1.0.0" % "compile", - "io.reactivex.rxjava2" % "rxjava" % "2.0.7" % "compile", + "io.reactivex.rxjava2" % "rxjava" % "2.1.1" % "compile", {{/useRxJava2}} - "io.swagger" % "swagger-annotations" % "1.5.12" % "compile", + "io.swagger" % "swagger-annotations" % "1.5.15" % "compile", "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile", {{^java8}} - "joda-time" % "joda-time" % "2.9.4" % "compile", + "joda-time" % "joda-time" % "2.9.9" % "compile", {{/java8}} "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.11" % "test" diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/pom.mustache index 92002db838e..a7d846446fe 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/pom.mustache @@ -283,20 +283,20 @@ {{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}} ${java.version} ${java.version} - 1.5.12 + 1.5.15 {{#usePlay24WS}} - 2.7.5 + 2.8.9 2.4.11 {{/usePlay24WS}} - 2.2.0 + 2.3.0 {{#useRxJava}} - 1.2.9 + 1.3.0 {{/useRxJava}} {{#useRxJava2}} - 2.0.7 + 2.1.1 {{/useRxJava2}} {{^java8}} - 2.9.4 + 2.9.9 {{/java8}} 1.0.1 4.12 diff --git a/modules/swagger-codegen/src/main/resources/Java/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/pom.mustache index 9a292b9ddc4..cc834ea3608 100644 --- a/modules/swagger-codegen/src/main/resources/Java/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/pom.mustache @@ -293,15 +293,15 @@ UTF-8 - 1.5.8 - 1.19.1 - 2.7.5 + 1.5.15 + 1.19.4 + 2.8.9 {{^java8}} - 2.9.4 + 2.9.9 {{/java8}} {{#supportJava6}} 2.5 - 3.5 + 3.6 {{/supportJava6}} 1.0.0 4.12 diff --git a/samples/client/petstore/java/jersey1/build.gradle b/samples/client/petstore/java/jersey1/build.gradle index eeba1d21fa5..3931ba2abe4 100644 --- a/samples/client/petstore/java/jersey1/build.gradle +++ b/samples/client/petstore/java/jersey1/build.gradle @@ -94,10 +94,10 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.7.5" - jersey_version = "1.19.1" - jodatime_version = "2.9.4" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + jersey_version = "1.19.4" + jodatime_version = "2.9.9" junit_version = "4.12" } diff --git a/samples/client/petstore/java/jersey1/pom.xml b/samples/client/petstore/java/jersey1/pom.xml index 2347df728d3..3c041747f54 100644 --- a/samples/client/petstore/java/jersey1/pom.xml +++ b/samples/client/petstore/java/jersey1/pom.xml @@ -247,10 +247,10 @@ UTF-8 - 1.5.8 - 1.19.1 - 2.7.5 - 2.9.4 + 1.5.15 + 1.19.4 + 2.8.9 + 2.9.9 1.0.0 4.12 diff --git a/samples/client/petstore/java/jersey2-java6/build.gradle b/samples/client/petstore/java/jersey2-java6/build.gradle index 88d95188b88..7910021321e 100644 --- a/samples/client/petstore/java/jersey2-java6/build.gradle +++ b/samples/client/petstore/java/jersey2-java6/build.gradle @@ -93,12 +93,12 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.7.5" - jersey_version = "2.22.2" - jodatime_version = "2.9.4" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + jersey_version = "2.25.1" + jodatime_version = "2.9.9" commons_io_version=2.5 - commons_lang3_version=3.5 + commons_lang3_version=3.6 junit_version = "4.12" } diff --git a/samples/client/petstore/java/jersey2-java6/build.sbt b/samples/client/petstore/java/jersey2-java6/build.sbt index d1d444bee2b..05f502ac4ab 100644 --- a/samples/client/petstore/java/jersey2-java6/build.sbt +++ b/samples/client/petstore/java/jersey2-java6/build.sbt @@ -9,17 +9,17 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", - "org.glassfish.jersey.core" % "jersey-client" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.22.2", - "com.fasterxml.jackson.core" % "jackson-core" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.5", - "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.7.5", - "joda-time" % "joda-time" % "2.9.4", + "io.swagger" % "swagger-annotations" % "1.5.15", + "org.glassfish.jersey.core" % "jersey-client" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.25.1", + "com.fasterxml.jackson.core" % "jackson-core" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.9", + "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.8.9", + "joda-time" % "joda-time" % "2.9.9", "com.brsanthu" % "migbase64" % "2.2", - "org.apache.commons" % "commons-lang3" % "3.5", + "org.apache.commons" % "commons-lang3" % "3.6", "commons-io" % "commons-io" % "2.5", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" diff --git a/samples/client/petstore/java/jersey2-java6/pom.xml b/samples/client/petstore/java/jersey2-java6/pom.xml index 375f01b23de..1eae180b676 100644 --- a/samples/client/petstore/java/jersey2-java6/pom.xml +++ b/samples/client/petstore/java/jersey2-java6/pom.xml @@ -254,12 +254,12 @@ - 1.5.12 - 2.22.2 - 2.7.5 - 2.9.4 + 1.5.15 + 2.25.1 + 2.8.9 + 2.9.9 2.5 - 3.5 + 3.6 1.0.0 4.12 diff --git a/samples/client/petstore/java/jersey2-java8/build.gradle b/samples/client/petstore/java/jersey2-java8/build.gradle index 072e608d1cb..13ad1675cd5 100644 --- a/samples/client/petstore/java/jersey2-java8/build.gradle +++ b/samples/client/petstore/java/jersey2-java8/build.gradle @@ -93,9 +93,9 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.7.5" - jersey_version = "2.22.2" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + jersey_version = "2.25.1" junit_version = "4.12" } diff --git a/samples/client/petstore/java/jersey2-java8/build.sbt b/samples/client/petstore/java/jersey2-java8/build.sbt index b187fb67ae2..4d2a46846fa 100644 --- a/samples/client/petstore/java/jersey2-java8/build.sbt +++ b/samples/client/petstore/java/jersey2-java8/build.sbt @@ -9,14 +9,14 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", - "org.glassfish.jersey.core" % "jersey-client" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.22.2", - "com.fasterxml.jackson.core" % "jackson-core" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.5", - "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.7.5", + "io.swagger" % "swagger-annotations" % "1.5.15", + "org.glassfish.jersey.core" % "jersey-client" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.25.1", + "com.fasterxml.jackson.core" % "jackson-core" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.9", + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.8.9", "com.brsanthu" % "migbase64" % "2.2", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" diff --git a/samples/client/petstore/java/jersey2-java8/pom.xml b/samples/client/petstore/java/jersey2-java8/pom.xml index 1f8805518bc..547cb4cbefd 100644 --- a/samples/client/petstore/java/jersey2-java8/pom.xml +++ b/samples/client/petstore/java/jersey2-java8/pom.xml @@ -238,9 +238,9 @@ - 1.5.12 - 2.22.2 - 2.7.5 + 1.5.15 + 2.25.1 + 2.8.9 1.0.0 4.12 diff --git a/samples/client/petstore/java/jersey2/build.gradle b/samples/client/petstore/java/jersey2/build.gradle index f20bda6db15..2290cd0f1e6 100644 --- a/samples/client/petstore/java/jersey2/build.gradle +++ b/samples/client/petstore/java/jersey2/build.gradle @@ -93,10 +93,10 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.7.5" - jersey_version = "2.22.2" - jodatime_version = "2.9.4" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + jersey_version = "2.25.1" + jodatime_version = "2.9.9" junit_version = "4.12" } diff --git a/samples/client/petstore/java/jersey2/build.sbt b/samples/client/petstore/java/jersey2/build.sbt index 555b44f16db..9a516c92cf5 100644 --- a/samples/client/petstore/java/jersey2/build.sbt +++ b/samples/client/petstore/java/jersey2/build.sbt @@ -9,15 +9,15 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", - "org.glassfish.jersey.core" % "jersey-client" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.22.2", - "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.22.2", - "com.fasterxml.jackson.core" % "jackson-core" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.5", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.5", - "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.7.5", - "joda-time" % "joda-time" % "2.9.4", + "io.swagger" % "swagger-annotations" % "1.5.15", + "org.glassfish.jersey.core" % "jersey-client" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.25.1", + "com.fasterxml.jackson.core" % "jackson-core" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.9", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.9", + "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.8.9", + "joda-time" % "joda-time" % "2.9.9", "com.brsanthu" % "migbase64" % "2.2", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" diff --git a/samples/client/petstore/java/jersey2/pom.xml b/samples/client/petstore/java/jersey2/pom.xml index fbf552cc133..b665825c4f4 100644 --- a/samples/client/petstore/java/jersey2/pom.xml +++ b/samples/client/petstore/java/jersey2/pom.xml @@ -243,10 +243,10 @@ - 1.5.12 - 2.22.2 - 2.7.5 - 2.9.4 + 1.5.15 + 2.25.1 + 2.8.9 + 2.9.9 1.0.0 4.12 diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle index 0f403ed63f3..1d7eb55f31d 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle @@ -94,10 +94,10 @@ if(hasProperty('target') && target == 'android') { } dependencies { - compile 'io.swagger:swagger-annotations:1.5.8' + compile 'io.swagger:swagger-annotations:1.5.15' compile 'com.squareup.okhttp:okhttp:2.7.5' compile 'com.squareup.okhttp:logging-interceptor:2.7.5' - compile 'com.google.code.gson:gson:2.6.2' - compile 'joda-time:joda-time:2.9.3' + compile 'com.google.code.gson:gson:2.8.1' + compile 'joda-time:joda-time:2.9.9' testCompile 'junit:junit:4.12' } diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt index 01a1095f8a4..0cb2e949949 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt @@ -9,11 +9,11 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", + "io.swagger" % "swagger-annotations" % "1.5.15", "com.squareup.okhttp" % "okhttp" % "2.7.5", "com.squareup.okhttp" % "logging-interceptor" % "2.7.5", - "com.google.code.gson" % "gson" % "2.6.2", - "joda-time" % "joda-time" % "2.9.3" % "compile", + "com.google.code.gson" % "gson" % "2.8.1", + "joda-time" % "joda-time" % "2.9.9" % "compile", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" ) diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml b/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml index 751d978c946..50033a27242 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml @@ -213,10 +213,10 @@ 1.7 ${java.version} ${java.version} - 1.5.12 + 1.5.15 2.7.5 - 2.6.2 - 2.9.3 + 2.8.1 + 2.9.9 1.0.0 4.12 UTF-8 diff --git a/samples/client/petstore/java/okhttp-gson/build.gradle b/samples/client/petstore/java/okhttp-gson/build.gradle index 0f403ed63f3..1d7eb55f31d 100644 --- a/samples/client/petstore/java/okhttp-gson/build.gradle +++ b/samples/client/petstore/java/okhttp-gson/build.gradle @@ -94,10 +94,10 @@ if(hasProperty('target') && target == 'android') { } dependencies { - compile 'io.swagger:swagger-annotations:1.5.8' + compile 'io.swagger:swagger-annotations:1.5.15' compile 'com.squareup.okhttp:okhttp:2.7.5' compile 'com.squareup.okhttp:logging-interceptor:2.7.5' - compile 'com.google.code.gson:gson:2.6.2' - compile 'joda-time:joda-time:2.9.3' + compile 'com.google.code.gson:gson:2.8.1' + compile 'joda-time:joda-time:2.9.9' testCompile 'junit:junit:4.12' } diff --git a/samples/client/petstore/java/okhttp-gson/build.sbt b/samples/client/petstore/java/okhttp-gson/build.sbt index 01a1095f8a4..0cb2e949949 100644 --- a/samples/client/petstore/java/okhttp-gson/build.sbt +++ b/samples/client/petstore/java/okhttp-gson/build.sbt @@ -9,11 +9,11 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "io.swagger" % "swagger-annotations" % "1.5.8", + "io.swagger" % "swagger-annotations" % "1.5.15", "com.squareup.okhttp" % "okhttp" % "2.7.5", "com.squareup.okhttp" % "logging-interceptor" % "2.7.5", - "com.google.code.gson" % "gson" % "2.6.2", - "joda-time" % "joda-time" % "2.9.3" % "compile", + "com.google.code.gson" % "gson" % "2.8.1", + "joda-time" % "joda-time" % "2.9.9" % "compile", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" ) diff --git a/samples/client/petstore/java/okhttp-gson/pom.xml b/samples/client/petstore/java/okhttp-gson/pom.xml index 26751c4e3af..d9cf3f47c33 100644 --- a/samples/client/petstore/java/okhttp-gson/pom.xml +++ b/samples/client/petstore/java/okhttp-gson/pom.xml @@ -206,10 +206,10 @@ 1.7 ${java.version} ${java.version} - 1.5.12 + 1.5.15 2.7.5 - 2.6.2 - 2.9.3 + 2.8.1 + 2.9.9 1.0.0 4.12 UTF-8 diff --git a/samples/client/petstore/java/resteasy/pom.xml b/samples/client/petstore/java/resteasy/pom.xml index 8421dc14798..aba73d0ed9e 100644 --- a/samples/client/petstore/java/resteasy/pom.xml +++ b/samples/client/petstore/java/resteasy/pom.xml @@ -164,7 +164,7 @@ org.jboss.resteasy resteasy-jackson-provider - 2.3.4.Final + 3.1.3.Final @@ -175,10 +175,10 @@ - 1.5.9 - 3.0.19.Final + 1.5.15 + 3.1.3.Final 2.7.5 - 2.9.4 + 2.9.9 1.0.0 4.12 diff --git a/samples/client/petstore/java/resttemplate/build.gradle b/samples/client/petstore/java/resttemplate/build.gradle index ab711893226..eeb852d3092 100644 --- a/samples/client/petstore/java/resttemplate/build.gradle +++ b/samples/client/petstore/java/resttemplate/build.gradle @@ -94,10 +94,10 @@ if(hasProperty('target') && target == 'android') { } ext { - swagger_annotations_version = "1.5.8" - jackson_version = "2.8.8" - spring_web_version = "4.3.7.RELEASE" - jodatime_version = "2.9.4" + swagger_annotations_version = "1.5.15" + jackson_version = "2.8.9" + spring_web_version = "4.3.9.RELEASE" + jodatime_version = "2.9.9" junit_version = "4.12" } diff --git a/samples/client/petstore/java/resttemplate/pom.xml b/samples/client/petstore/java/resttemplate/pom.xml index f5b77cc1e71..01059b5fcb9 100644 --- a/samples/client/petstore/java/resttemplate/pom.xml +++ b/samples/client/petstore/java/resttemplate/pom.xml @@ -233,10 +233,10 @@ UTF-8 - 1.5.8 - 4.3.7.RELEASE - 2.8.8 - 2.9.4 + 1.5.15 + 4.3.9.RELEASE + 2.8.9 + 2.9.9 1.0.0 4.12 diff --git a/samples/client/petstore/java/retrofit2-play24/build.gradle b/samples/client/petstore/java/retrofit2-play24/build.gradle index d5624f8999b..660aa9a74f3 100644 --- a/samples/client/petstore/java/retrofit2-play24/build.gradle +++ b/samples/client/petstore/java/retrofit2-play24/build.gradle @@ -96,11 +96,11 @@ if(hasProperty('target') && target == 'android') { ext { oltu_version = "1.0.1" retrofit_version = "2.1.0" - jackson_version = "2.7.5" + jackson_version = "2.8.9" play_version = "2.4.11" - swagger_annotations_version = "1.5.12" + swagger_annotations_version = "1.5.15" junit_version = "4.12" - jodatime_version = "2.9.4" + jodatime_version = "2.9.9" } dependencies { diff --git a/samples/client/petstore/java/retrofit2-play24/build.sbt b/samples/client/petstore/java/retrofit2-play24/build.sbt index feceac08cf1..60a3d4c78ec 100644 --- a/samples/client/petstore/java/retrofit2-play24/build.sbt +++ b/samples/client/petstore/java/retrofit2-play24/build.sbt @@ -14,12 +14,12 @@ lazy val root = (project in file(".")). "com.squareup.retrofit2" % "converter-scalars" % "2.1.0" % "compile", "com.squareup.retrofit2" % "converter-gson" % "2.1.0" % "compile", "com.squareup.retrofit2" % "converter-jackson" % "2.1.0" % "compile", - "com.fasterxml.jackson.core" % "jackson-core" % "2.7.5" % "compile", - "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.5" % "compile", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.5" % "compile", - "io.swagger" % "swagger-annotations" % "1.5.12" % "compile", + "com.fasterxml.jackson.core" % "jackson-core" % "2.8.9" % "compile", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.9" % "compile", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.9" % "compile", + "io.swagger" % "swagger-annotations" % "1.5.15" % "compile", "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile", - "joda-time" % "joda-time" % "2.9.4" % "compile", + "joda-time" % "joda-time" % "2.9.9" % "compile", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.11" % "test" ) diff --git a/samples/client/petstore/java/retrofit2-play24/pom.xml b/samples/client/petstore/java/retrofit2-play24/pom.xml index 6693f615e65..f711d861787 100644 --- a/samples/client/petstore/java/retrofit2-play24/pom.xml +++ b/samples/client/petstore/java/retrofit2-play24/pom.xml @@ -246,11 +246,11 @@ 1.7 ${java.version} ${java.version} - 1.5.12 - 2.7.5 + 1.5.15 + 2.8.9 2.4.11 - 2.2.0 - 2.9.4 + 2.3.0 + 2.9.9 1.0.1 4.12 diff --git a/samples/client/petstore/java/retrofit2/build.gradle b/samples/client/petstore/java/retrofit2/build.gradle index 75dcea187e5..32fa566abd0 100644 --- a/samples/client/petstore/java/retrofit2/build.gradle +++ b/samples/client/petstore/java/retrofit2/build.gradle @@ -95,10 +95,10 @@ if(hasProperty('target') && target == 'android') { ext { oltu_version = "1.0.1" - retrofit_version = "2.2.0" - swagger_annotations_version = "1.5.12" + retrofit_version = "2.3.0" + swagger_annotations_version = "1.5.15" junit_version = "4.12" - jodatime_version = "2.9.4" + jodatime_version = "2.9.9" } dependencies { diff --git a/samples/client/petstore/java/retrofit2/build.sbt b/samples/client/petstore/java/retrofit2/build.sbt index dc9ee6dee8f..84cf4872581 100644 --- a/samples/client/petstore/java/retrofit2/build.sbt +++ b/samples/client/petstore/java/retrofit2/build.sbt @@ -9,12 +9,12 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "com.squareup.retrofit2" % "retrofit" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-scalars" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-gson" % "2.2.0" % "compile", - "io.swagger" % "swagger-annotations" % "1.5.12" % "compile", + "com.squareup.retrofit2" % "retrofit" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-scalars" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-gson" % "2.3.0" % "compile", + "io.swagger" % "swagger-annotations" % "1.5.15" % "compile", "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile", - "joda-time" % "joda-time" % "2.9.4" % "compile", + "joda-time" % "joda-time" % "2.9.9" % "compile", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.11" % "test" ) diff --git a/samples/client/petstore/java/retrofit2/pom.xml b/samples/client/petstore/java/retrofit2/pom.xml index ee302c6300d..c9a8b343c8d 100644 --- a/samples/client/petstore/java/retrofit2/pom.xml +++ b/samples/client/petstore/java/retrofit2/pom.xml @@ -215,9 +215,9 @@ 1.7 ${java.version} ${java.version} - 1.5.12 - 2.2.0 - 2.9.4 + 1.5.15 + 2.3.0 + 2.9.9 1.0.1 4.12 diff --git a/samples/client/petstore/java/retrofit2rx/build.gradle b/samples/client/petstore/java/retrofit2rx/build.gradle index bc5eb287684..42f189e96f5 100644 --- a/samples/client/petstore/java/retrofit2rx/build.gradle +++ b/samples/client/petstore/java/retrofit2rx/build.gradle @@ -95,11 +95,11 @@ if(hasProperty('target') && target == 'android') { ext { oltu_version = "1.0.1" - retrofit_version = "2.2.0" - swagger_annotations_version = "1.5.12" + retrofit_version = "2.3.0" + swagger_annotations_version = "1.5.15" junit_version = "4.12" - rx_java_version = "1.2.9" - jodatime_version = "2.9.4" + rx_java_version = "1.3.0" + jodatime_version = "2.9.9" } dependencies { diff --git a/samples/client/petstore/java/retrofit2rx/build.sbt b/samples/client/petstore/java/retrofit2rx/build.sbt index 30e122bb085..3f65cae002b 100644 --- a/samples/client/petstore/java/retrofit2rx/build.sbt +++ b/samples/client/petstore/java/retrofit2rx/build.sbt @@ -9,14 +9,14 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "com.squareup.retrofit2" % "retrofit" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-scalars" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-gson" % "2.2.0" % "compile", + "com.squareup.retrofit2" % "retrofit" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-scalars" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-gson" % "2.3.0" % "compile", "com.squareup.retrofit2" % "adapter-rxjava" % "2.2.0" % "compile", - "io.reactivex" % "rxjava" % "1.2.9" % "compile", - "io.swagger" % "swagger-annotations" % "1.5.12" % "compile", + "io.reactivex" % "rxjava" % "1.3.0" % "compile", + "io.swagger" % "swagger-annotations" % "1.5.15" % "compile", "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile", - "joda-time" % "joda-time" % "2.9.4" % "compile", + "joda-time" % "joda-time" % "2.9.9" % "compile", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.11" % "test" ) diff --git a/samples/client/petstore/java/retrofit2rx/pom.xml b/samples/client/petstore/java/retrofit2rx/pom.xml index 1498dc252f8..e7275be1be3 100644 --- a/samples/client/petstore/java/retrofit2rx/pom.xml +++ b/samples/client/petstore/java/retrofit2rx/pom.xml @@ -225,10 +225,10 @@ 1.7 ${java.version} ${java.version} - 1.5.12 - 2.2.0 - 1.2.9 - 2.9.4 + 1.5.15 + 2.3.0 + 1.3.0 + 2.9.9 1.0.1 4.12 diff --git a/samples/client/petstore/java/retrofit2rx2/build.gradle b/samples/client/petstore/java/retrofit2rx2/build.gradle index a36e978c9a6..7d35c759233 100644 --- a/samples/client/petstore/java/retrofit2rx2/build.gradle +++ b/samples/client/petstore/java/retrofit2rx2/build.gradle @@ -95,11 +95,11 @@ if(hasProperty('target') && target == 'android') { ext { oltu_version = "1.0.1" - retrofit_version = "2.2.0" - swagger_annotations_version = "1.5.12" + retrofit_version = "2.3.0" + swagger_annotations_version = "1.5.15" junit_version = "4.12" - rx_java_version = "2.0.7" - jodatime_version = "2.9.4" + rx_java_version = "2.1.1" + jodatime_version = "2.9.9" } dependencies { diff --git a/samples/client/petstore/java/retrofit2rx2/build.sbt b/samples/client/petstore/java/retrofit2rx2/build.sbt index b989cdf3269..181f8040a71 100644 --- a/samples/client/petstore/java/retrofit2rx2/build.sbt +++ b/samples/client/petstore/java/retrofit2rx2/build.sbt @@ -9,14 +9,14 @@ lazy val root = (project in file(".")). publishArtifact in (Compile, packageDoc) := false, resolvers += Resolver.mavenLocal, libraryDependencies ++= Seq( - "com.squareup.retrofit2" % "retrofit" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-scalars" % "2.2.0" % "compile", - "com.squareup.retrofit2" % "converter-gson" % "2.2.0" % "compile", + "com.squareup.retrofit2" % "retrofit" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-scalars" % "2.3.0" % "compile", + "com.squareup.retrofit2" % "converter-gson" % "2.3.0" % "compile", "com.jakewharton.retrofit" % "retrofit2-rxjava2-adapter" % "1.0.0" % "compile", - "io.reactivex.rxjava2" % "rxjava" % "2.0.7" % "compile", - "io.swagger" % "swagger-annotations" % "1.5.12" % "compile", + "io.reactivex.rxjava2" % "rxjava" % "2.1.1" % "compile", + "io.swagger" % "swagger-annotations" % "1.5.15" % "compile", "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile", - "joda-time" % "joda-time" % "2.9.4" % "compile", + "joda-time" % "joda-time" % "2.9.9" % "compile", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.11" % "test" ) diff --git a/samples/client/petstore/java/retrofit2rx2/pom.xml b/samples/client/petstore/java/retrofit2rx2/pom.xml index 34d054b1fdc..e30ee231a55 100644 --- a/samples/client/petstore/java/retrofit2rx2/pom.xml +++ b/samples/client/petstore/java/retrofit2rx2/pom.xml @@ -225,10 +225,10 @@ 1.7 ${java.version} ${java.version} - 1.5.12 - 2.2.0 - 2.0.7 - 2.9.4 + 1.5.15 + 2.3.0 + 2.1.1 + 2.9.9 1.0.1 4.12 From 5fbb674cac0804269f65d186f96cfc52ab6b4598 Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 27 Jun 2017 00:41:08 +0800 Subject: [PATCH 33/33] fix retrofit okhttp version --- .../src/main/resources/Java/libraries/retrofit/pom.mustache | 2 +- samples/client/petstore/java/retrofit/pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache index 67daaeaf209..672d4b754ca 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/retrofit/pom.mustache @@ -224,7 +224,7 @@ 1.5.15 1.9.0 - 2.8.9 + 2.7.5 2.9.9 1.0.1 1.0.0 diff --git a/samples/client/petstore/java/retrofit/pom.xml b/samples/client/petstore/java/retrofit/pom.xml index cb50ddea34d..ffb62b3f28f 100644 --- a/samples/client/petstore/java/retrofit/pom.xml +++ b/samples/client/petstore/java/retrofit/pom.xml @@ -213,10 +213,10 @@ - 1.5.12 + 1.5.15 1.9.0 2.7.5 - 2.9.3 + 2.9.9 1.0.1 1.0.0 4.12