Binary support for javascript client (#5194)

This commit is contained in:
Julien Dupouy
2017-03-26 16:53:35 +02:00
committed by wing328
parent a9c7030997
commit e50e653e3d
16 changed files with 62 additions and 43 deletions

View File

@@ -22,6 +22,7 @@ import io.swagger.models.Operation;
import io.swagger.models.Swagger;
import io.swagger.models.properties.ArrayProperty;
import io.swagger.models.properties.BooleanProperty;
import io.swagger.models.properties.ByteArrayProperty;
import io.swagger.models.properties.DateProperty;
import io.swagger.models.properties.DateTimeProperty;
import io.swagger.models.properties.DoubleProperty;
@@ -113,7 +114,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
);
languageSpecificPrimitives = new HashSet<String>(
Arrays.asList("String", "Boolean", "Number", "Array", "Object", "Date", "File")
Arrays.asList("String", "Boolean", "Number", "Array", "Object", "Date", "File", "Blob")
);
defaultIncludes = new HashSet<String>(languageSpecificPrimitives);
@@ -138,8 +139,8 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
typeMapping.put("object", "Object");
typeMapping.put("integer", "Number");
// binary not supported in JavaScript client right now, using String as a workaround
typeMapping.put("ByteArray", "String"); // I don't see ByteArray defined in the Swagger docs.
typeMapping.put("binary", "String");
typeMapping.put("ByteArray", "Blob"); // I don't see ByteArray defined in the Swagger docs.
typeMapping.put("binary", "Blob");
typeMapping.put("UUID", "String");
importMapping.clear();
@@ -652,7 +653,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
* @return Normalized type
*/
public String normalizeType(String type) {
return type.replaceAll("\\b(Boolean|Integer|Number|String|Date)\\b", "'$1'");
return type.replaceAll("\\b(Boolean|Integer|Number|String|Date|Blob)\\b", "'$1'");
}
@Override

View File

@@ -421,6 +421,10 @@
request.accept(accept);
}
if (returnType === 'Blob') {
request.responseType('blob');
}
// Attach previously saved cookies, if enabled
if (this.enableCookies){
if (typeof window === 'undefined') {
@@ -501,6 +505,8 @@
return String(data);
case 'Date':
return this.parseDate(String(data));
case 'Blob':
return data;
default:
if (type === Object) {
// generic object, return directly

View File

@@ -8,7 +8,7 @@
"test": "./node_modules/mocha/bin/mocha --recursive"
},
"dependencies": {
"superagent": "1.7.1"
"superagent": "3.5.2"
},
"devDependencies": {
"mocha": "~2.3.4",

View File

@@ -420,10 +420,10 @@ public class JavaScriptModelTest {
Assert.assertEquals(property.baseName, "inputBinaryData");
Assert.assertEquals(property.getter, "getInputBinaryData");
Assert.assertEquals(property.setter, "setInputBinaryData");
Assert.assertEquals(property.datatype, "String");
Assert.assertEquals(property.datatype, "Blob");
Assert.assertEquals(property.name, "inputBinaryData");
Assert.assertEquals(property.defaultValue, null);
Assert.assertEquals(property.baseType, "String");
Assert.assertEquals(property.baseType, "Blob");
Assert.assertFalse(property.hasMore);
Assert.assertFalse(property.required);
Assert.assertTrue(property.isNotContainer);

View File

@@ -78,7 +78,7 @@ var _double = 1.2; // Number | None
var patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None
var _byte = "B"; // String | None
var _byte = B; // Blob | None
var opts = {
'integer': 56, // Number | None
@@ -86,7 +86,7 @@ var opts = {
'int64': 789, // Number | None
'_float': 3.4, // Number | None
'_string': "_string_example", // String | None
'binary': "B", // String | None
'binary': B, // Blob | None
'_date': new Date("2013-10-20"), // Date | None
'dateTime': new Date("2013-10-20T19:20:30+01:00"), // Date | None
'password': "password_example", // String | None
@@ -107,13 +107,13 @@ Name | Type | Description | Notes
**_number** | **Number**| None |
**_double** | **Number**| None |
**patternWithoutDelimiter** | **String**| None |
**_byte** | **String**| None |
**_byte** | **Blob**| None |
**integer** | **Number**| None | [optional]
**int32** | **Number**| None | [optional]
**int64** | **Number**| None | [optional]
**_float** | **Number**| None | [optional]
**_string** | **String**| None | [optional]
**binary** | **String**| None | [optional]
**binary** | **Blob**| None | [optional]
**_date** | **Date**| None | [optional]
**dateTime** | **Date**| None | [optional]
**password** | **String**| None | [optional]

View File

@@ -10,8 +10,8 @@ Name | Type | Description | Notes
**_float** | **Number** | | [optional]
**_double** | **Number** | | [optional]
**_string** | **String** | | [optional]
**_byte** | **String** | |
**binary** | **String** | | [optional]
**_byte** | **Blob** | |
**binary** | **Blob** | | [optional]
**_date** | **Date** | |
**dateTime** | **Date** | | [optional]
**uuid** | **String** | | [optional]

View File

@@ -8,7 +8,7 @@
"test": "./node_modules/mocha/bin/mocha --recursive"
},
"dependencies": {
"superagent": "1.7.1"
"superagent": "3.5.2"
},
"devDependencies": {
"mocha": "~2.3.4",

View File

@@ -415,6 +415,10 @@
request.accept(accept);
}
if (returnType === 'Blob') {
request.responseType('blob');
}
// Attach previously saved cookies, if enabled
if (this.enableCookies){
if (typeof window === 'undefined') {
@@ -477,6 +481,8 @@
return String(data);
case 'Date':
return this.parseDate(String(data));
case 'Blob':
return data;
default:
if (type === Object) {
// generic object, return directly

View File

@@ -102,14 +102,14 @@
* @param {Number} _number None
* @param {Number} _double None
* @param {String} patternWithoutDelimiter None
* @param {String} _byte None
* @param {Blob} _byte None
* @param {Object} opts Optional parameters
* @param {Number} opts.integer None
* @param {Number} opts.int32 None
* @param {Number} opts.int64 None
* @param {Number} opts._float None
* @param {String} opts._string None
* @param {String} opts.binary None
* @param {Blob} opts.binary None
* @param {Date} opts._date None
* @param {Date} opts.dateTime None
* @param {String} opts.password None
@@ -182,14 +182,14 @@
* @param {Number} _number None
* @param {Number} _double None
* @param {String} patternWithoutDelimiter None
* @param {String} _byte None
* @param {Blob} _byte None
* @param {Object} opts Optional parameters
* @param {Number} opts.integer None
* @param {Number} opts.int32 None
* @param {Number} opts.int64 None
* @param {Number} opts._float None
* @param {String} opts._string None
* @param {String} opts.binary None
* @param {Blob} opts.binary None
* @param {Date} opts._date None
* @param {Date} opts.dateTime None
* @param {String} opts.password None
@@ -214,8 +214,8 @@
* @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
* @param {Array.<module:model/String>} opts.enumQueryStringArray Query parameter enum test (string array)
* @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
* @param {Number} opts.enumQueryInteger Query parameter enum test (double)
* @param {Number} opts.enumQueryDouble Query parameter enum test (double)
* @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
* @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) {
@@ -262,8 +262,8 @@
* @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
* @param {Array.<module:model/String>} opts.enumQueryStringArray Query parameter enum test (string array)
* @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
* @param {Number} opts.enumQueryInteger Query parameter enum test (double)
* @param {Number} opts.enumQueryDouble Query parameter enum test (double)
* @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
* @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double)
* @return {Promise} a {@link https://www.promisejs.org/|Promise}
*/
this.testEnumParameters = function(opts) {

View File

@@ -42,7 +42,7 @@
* @alias module:model/FormatTest
* @class
* @param _number {Number}
* @param _byte {String}
* @param _byte {Blob}
* @param _date {Date}
* @param password {String}
*/
@@ -97,10 +97,10 @@
obj['string'] = ApiClient.convertToType(data['string'], 'String');
}
if (data.hasOwnProperty('byte')) {
obj['byte'] = ApiClient.convertToType(data['byte'], 'String');
obj['byte'] = ApiClient.convertToType(data['byte'], Blob);
}
if (data.hasOwnProperty('binary')) {
obj['binary'] = ApiClient.convertToType(data['binary'], 'String');
obj['binary'] = ApiClient.convertToType(data['binary'], Blob);
}
if (data.hasOwnProperty('date')) {
obj['date'] = ApiClient.convertToType(data['date'], 'Date');
@@ -147,11 +147,11 @@
*/
exports.prototype['string'] = undefined;
/**
* @member {String} byte
* @member {Blob} byte
*/
exports.prototype['byte'] = undefined;
/**
* @member {String} binary
* @member {Blob} binary
*/
exports.prototype['binary'] = undefined;
/**

View File

@@ -81,7 +81,7 @@ var _double = 1.2; // Number | None
var patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None
var _byte = "B"; // String | None
var _byte = B; // Blob | None
var opts = {
'integer': 56, // Number | None
@@ -89,7 +89,7 @@ var opts = {
'int64': 789, // Number | None
'_float': 3.4, // Number | None
'_string': "_string_example", // String | None
'binary': "B", // String | None
'binary': B, // Blob | None
'_date': new Date("2013-10-20"), // Date | None
'dateTime': new Date("2013-10-20T19:20:30+01:00"), // Date | None
'password': "password_example", // String | None
@@ -113,13 +113,13 @@ Name | Type | Description | Notes
**_number** | **Number**| None |
**_double** | **Number**| None |
**patternWithoutDelimiter** | **String**| None |
**_byte** | **String**| None |
**_byte** | **Blob**| None |
**integer** | **Number**| None | [optional]
**int32** | **Number**| None | [optional]
**int64** | **Number**| None | [optional]
**_float** | **Number**| None | [optional]
**_string** | **String**| None | [optional]
**binary** | **String**| None | [optional]
**binary** | **Blob**| None | [optional]
**_date** | **Date**| None | [optional]
**dateTime** | **Date**| None | [optional]
**password** | **String**| None | [optional]

View File

@@ -10,8 +10,8 @@ Name | Type | Description | Notes
**_float** | **Number** | | [optional]
**_double** | **Number** | | [optional]
**_string** | **String** | | [optional]
**_byte** | **String** | |
**binary** | **String** | | [optional]
**_byte** | **Blob** | |
**binary** | **Blob** | | [optional]
**_date** | **Date** | |
**dateTime** | **Date** | | [optional]
**uuid** | **String** | | [optional]

View File

@@ -8,7 +8,7 @@
"test": "./node_modules/mocha/bin/mocha --recursive"
},
"dependencies": {
"superagent": "1.7.1"
"superagent": "3.5.2"
},
"devDependencies": {
"mocha": "~2.3.4",

View File

@@ -424,6 +424,10 @@
request.accept(accept);
}
if (returnType === 'Blob') {
request.responseType('blob');
}
// Attach previously saved cookies, if enabled
if (this.enableCookies){
if (typeof window === 'undefined') {
@@ -488,6 +492,8 @@
return String(data);
case 'Date':
return this.parseDate(String(data));
case 'Blob':
return data;
default:
if (type === Object) {
// generic object, return directly

View File

@@ -104,14 +104,14 @@
* @param {Number} _number None
* @param {Number} _double None
* @param {String} patternWithoutDelimiter None
* @param {String} _byte None
* @param {Blob} _byte None
* @param {Object} opts Optional parameters
* @param {Number} opts.integer None
* @param {Number} opts.int32 None
* @param {Number} opts.int64 None
* @param {Number} opts._float None
* @param {String} opts._string None
* @param {String} opts.binary None
* @param {Blob} opts.binary None
* @param {Date} opts._date None
* @param {Date} opts.dateTime None
* @param {String} opts.password None
@@ -196,8 +196,8 @@
* @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
* @param {Array.<module:model/String>} opts.enumQueryStringArray Query parameter enum test (string array)
* @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
* @param {Number} opts.enumQueryInteger Query parameter enum test (double)
* @param {Number} opts.enumQueryDouble Query parameter enum test (double)
* @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
* @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) {

View File

@@ -42,7 +42,7 @@
* @alias module:model/FormatTest
* @class
* @param _number {Number}
* @param _byte {String}
* @param _byte {Blob}
* @param _date {Date}
* @param password {String}
*/
@@ -97,10 +97,10 @@
obj['string'] = ApiClient.convertToType(data['string'], 'String');
}
if (data.hasOwnProperty('byte')) {
obj['byte'] = ApiClient.convertToType(data['byte'], 'String');
obj['byte'] = ApiClient.convertToType(data['byte'], Blob);
}
if (data.hasOwnProperty('binary')) {
obj['binary'] = ApiClient.convertToType(data['binary'], 'String');
obj['binary'] = ApiClient.convertToType(data['binary'], Blob);
}
if (data.hasOwnProperty('date')) {
obj['date'] = ApiClient.convertToType(data['date'], 'Date');
@@ -147,11 +147,11 @@
*/
exports.prototype['string'] = undefined;
/**
* @member {String} byte
* @member {Blob} byte
*/
exports.prototype['byte'] = undefined;
/**
* @member {String} binary
* @member {Blob} binary
*/
exports.prototype['binary'] = undefined;
/**