diff --git a/modules/openapi-generator/src/main/resources/Javascript/es6/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Javascript/es6/ApiClient.mustache index 1decc2f2dbf..573128bd666 100644 --- a/modules/openapi-generator/src/main/resources/Javascript/es6/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Javascript/es6/ApiClient.mustache @@ -438,7 +438,14 @@ class ApiClient { {{#usePromises}}return new Promise((resolve, reject) => { request.end((error, response) => { if (error) { - reject(error); + var err = {}; + err.status = response.status; + err.statusText = response.statusText; + err.body = response.body; + err.response = response; + err.error = error; + + reject(err); } else { try { var data = this.deserialize(response, returnType); diff --git a/samples/client/petstore/javascript-promise-es6/src/ApiClient.js b/samples/client/petstore/javascript-promise-es6/src/ApiClient.js index 50ef10e264e..3de893aa39e 100644 --- a/samples/client/petstore/javascript-promise-es6/src/ApiClient.js +++ b/samples/client/petstore/javascript-promise-es6/src/ApiClient.js @@ -89,6 +89,11 @@ class ApiClient { */ this.requestAgent = null; + /* + * Allow user to add superagent plugins + */ + this.plugins = null; + } /** @@ -347,6 +352,14 @@ class ApiClient { var url = this.buildUrl(path, pathParams); var request = superagent(httpMethod, url); + if (this.plugins !== null) { + for (var index in this.plugins) { + if (this.plugins.hasOwnProperty(index)) { + request.use(this.plugins[index]) + } + } + } + // apply authentications this.applyAuthToRequest(request, authNames); @@ -420,7 +433,14 @@ class ApiClient { return new Promise((resolve, reject) => { request.end((error, response) => { if (error) { - reject(error); + var err = {}; + err.status = response.status; + err.statusText = response.statusText; + err.body = response.body; + err.response = response; + err.error = error; + + reject(err); } else { try { var data = this.deserialize(response, returnType);