Skip to content

Commit 0b7b9b6

Browse files
committed
Modifications for batch upload
1 parent 3cbc4e8 commit 0b7b9b6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+342
-28
lines changed

generator/cybersource-javascript-template/ApiClient.mustache

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@
628628
if (httpMethod.toLowerCase() === this.constants.POST
629629
|| httpMethod.toLowerCase() === this.constants.PATCH
630630
|| httpMethod.toLowerCase() === this.constants.PUT) {
631-
if (bodyParam !== "{}") {
631+
if (bodyParam !== "{}" && Object.keys(formParams).length <= 0) {
632632
bodyParam = JSON.stringify(bodyParam, null, 0);
633633
}
634634
}
@@ -672,18 +672,11 @@
672672
axiosConfig.headers['Content-Type'] = contentTypeHeaderValue;
673673
formParams = bodyParam;
674674
axiosConfig.data = JSON.parse(formParams);
675-
} else if (contentType == 'multipart/form-data') {
676-
var _formParams = this.normalizeParams(formParams);
677-
contentTypeHeaderValue = 'multipart/form-data';
678-
axiosConfig.headers['Content-Type'] = contentTypeHeaderValue;
679-
const formData = new formData();
680-
for (var key in _formParams) {
681-
if (_formParams.hasOwnProperty(key)) {
682-
formData.append(key, _formParams[key]);
683-
}
684-
}
685-
} else if (bodyParam) {
675+
} else if (bodyParam && Object.keys(formParams).length <= 0) {
686676
axiosConfig.data = JSON.parse(bodyParam);
677+
} else if (bodyParam && Object.keys(formParams).length > 0) {
678+
axiosConfig.data = bodyParam;
679+
axiosConfig.headers['Content-Type'] = contentType;
687680
}
688681

689682
var accept = this.jsonPreferredMime(accepts);

generator/cybersource-javascript-template/api.mustache

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,20 @@
7777
postBody = sdkTracker.insertDeveloperIdTracker(postBody, '<&vendorExtensions.x-jsdoc-type>', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
7878
</bodyParam>
7979

80+
<#formParams>
81+
const path = require('path');
82+
const fs = require('fs');
83+
const crypto = require('crypto');
84+
85+
file = path.resolve(file);
86+
87+
var boundary = crypto.randomBytes(16).toString('hex');
88+
var delimiter = "-------------" + boundary;
89+
90+
var fileContents;
91+
fileContents = fs.readFileSync(file, 'utf8');
92+
</formParams>
93+
8094
var pathParams = {<#pathParams>
8195
'<baseName>': <#required><paramName></required><^required>opts['<paramName>']</required><#hasMore>,</hasMore></pathParams>
8296
};
@@ -87,11 +101,16 @@
87101
'<baseName>': <#required><paramName></required><^required>opts['<paramName>']</required><#hasMore>,</hasMore></headerParams>
88102
};
89103
var formParams = {<#formParams>
90-
'<baseName>': <#collectionFormat>this.apiClient.buildCollectionParam(<#required><paramName></required><^required>opts['<paramName>']</required>, '<collectionFormat>')</collectionFormat><^collectionFormat><#required><paramName></required><^required>opts['<paramName>']</required></collectionFormat><#hasMore>,</hasMore></formParams>
104+
[path.basename(<baseName>)]: <#collectionFormat>this.apiClient.buildCollectionParam(<#required><paramName></required><^required>opts['<paramName>']</required>, '<collectionFormat>')</collectionFormat><^collectionFormat><#required>fileContents</required><^required>opts['<paramName>']</required></collectionFormat><#hasMore>,</hasMore></formParams>
91105
};
92106

107+
<#formParams>
108+
const MultipartHelper = require('../utilities/multipart/MultipartHelper');
109+
postBody = MultipartHelper.buildDataFiles(boundary, formParams);
110+
</formParams>
111+
93112
var authNames = [<#authMethods>'<name>'<#hasMore>, </hasMore></authMethods>];
94-
var contentTypes = [<#consumes>'<& mediaType>'<#hasMore>, </hasMore></consumes>];
113+
var contentTypes = <^formParams>[<#consumes>'<& mediaType>'<#hasMore>, </hasMore></consumes>]</formParams><#formParams>['multipart/form-data; boundary=' + delimiter]</formParams>;
95114
var accepts = [<#produces>'<& mediaType>'<#hasMore>, </hasMore></produces>];
96115
var returnType = <#returnType><&returnType></returnType><^returnType>null</returnType>;
97116

src/ApiClient.js

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@
630630
if (httpMethod.toLowerCase() === this.constants.POST
631631
|| httpMethod.toLowerCase() === this.constants.PATCH
632632
|| httpMethod.toLowerCase() === this.constants.PUT) {
633-
if (bodyParam !== "{}") {
633+
if (bodyParam !== "{}" && Object.keys(formParams).length <= 0) {
634634
bodyParam = JSON.stringify(bodyParam, null, 0);
635635
}
636636
}
@@ -674,18 +674,11 @@
674674
axiosConfig.headers['Content-Type'] = contentTypeHeaderValue;
675675
formParams = bodyParam;
676676
axiosConfig.data = JSON.parse(formParams);
677-
} else if (contentType == 'multipart/form-data') {
678-
var _formParams = this.normalizeParams(formParams);
679-
contentTypeHeaderValue = 'multipart/form-data';
680-
axiosConfig.headers['Content-Type'] = contentTypeHeaderValue;
681-
const formData = new formData();
682-
for (var key in _formParams) {
683-
if (_formParams.hasOwnProperty(key)) {
684-
formData.append(key, _formParams[key]);
685-
}
686-
}
687-
} else if (bodyParam) {
677+
} else if (bodyParam && Object.keys(formParams).length <= 0) {
688678
axiosConfig.data = JSON.parse(bodyParam);
679+
} else if (bodyParam && Object.keys(formParams).length > 0) {
680+
axiosConfig.data = bodyParam;
681+
axiosConfig.headers['Content-Type'] = contentType;
689682
}
690683

691684
var accept = this.jsonPreferredMime(accepts);

src/api/BatchesApi.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
}
7777

7878

79+
7980
var pathParams = {
8081
'batchId': batchId
8182
};
@@ -86,6 +87,7 @@
8687
var formParams = {
8788
};
8889

90+
8991
var authNames = [];
9092
var contentTypes = ['application/json;charset=utf-8'];
9193
var accepts = ['application/json;charset=utf-8'];
@@ -139,6 +141,7 @@
139141
}
140142

141143

144+
142145
var pathParams = {
143146
'batchId': batchId
144147
};
@@ -149,6 +152,7 @@
149152
var formParams = {
150153
};
151154

155+
152156
var authNames = [];
153157
var contentTypes = ['application/json;charset=utf-8'];
154158
var accepts = ['application/json;charset=utf-8'];
@@ -202,6 +206,7 @@
202206
}
203207

204208

209+
205210
var pathParams = {
206211
};
207212
var queryParams = {
@@ -215,6 +220,7 @@
215220
var formParams = {
216221
};
217222

223+
218224
var authNames = [];
219225
var contentTypes = ['application/json;charset=utf-8'];
220226
var accepts = ['application/json;charset=utf-8'];
@@ -269,6 +275,7 @@
269275
var sdkTracker = new SdkTracker();
270276
postBody = sdkTracker.insertDeveloperIdTracker(postBody, 'module:model/Body', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
271277

278+
272279
var pathParams = {
273280
};
274281
var queryParams = {
@@ -278,6 +285,7 @@
278285
var formParams = {
279286
};
280287

288+
281289
var authNames = [];
282290
var contentTypes = ['application/json;charset=utf-8'];
283291
var accepts = ['application/json;charset=utf-8'];

src/api/BillingAgreementsApi.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
var sdkTracker = new SdkTracker();
8484
postBody = sdkTracker.insertDeveloperIdTracker(postBody, 'module:model/ModifyBillingAgreement', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
8585

86+
8687
var pathParams = {
8788
'id': id
8889
};
@@ -93,6 +94,7 @@
9394
var formParams = {
9495
};
9596

97+
9698
var authNames = [];
9799
var contentTypes = ['application/json;charset=utf-8'];
98100
var accepts = ['application/hal+json;charset=utf-8'];
@@ -153,6 +155,7 @@
153155
var sdkTracker = new SdkTracker();
154156
postBody = sdkTracker.insertDeveloperIdTracker(postBody, 'module:model/IntimateBillingAgreement', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
155157

158+
156159
var pathParams = {
157160
'id': id
158161
};
@@ -163,6 +166,7 @@
163166
var formParams = {
164167
};
165168

169+
166170
var authNames = [];
167171
var contentTypes = ['application/json;charset=utf-8'];
168172
var accepts = ['application/hal+json;charset=utf-8'];
@@ -217,6 +221,7 @@
217221
var sdkTracker = new SdkTracker();
218222
postBody = sdkTracker.insertDeveloperIdTracker(postBody, 'module:model/CreateBillingAgreement', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
219223

224+
220225
var pathParams = {
221226
};
222227
var queryParams = {
@@ -226,6 +231,7 @@
226231
var formParams = {
227232
};
228233

234+
229235
var authNames = [];
230236
var contentTypes = ['application/json;charset=utf-8'];
231237
var accepts = ['application/hal+json;charset=utf-8'];

src/api/BinLookupApi.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
var sdkTracker = new SdkTracker();
8080
postBody = sdkTracker.insertDeveloperIdTracker(postBody, 'module:model/CreateBinLookupRequest', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
8181

82+
8283
var pathParams = {
8384
};
8485
var queryParams = {
@@ -88,6 +89,7 @@
8889
var formParams = {
8990
};
9091

92+
9193
var authNames = [];
9294
var contentTypes = ['application/json;charset=utf-8'];
9395
var accepts = ['application/json;charset=utf-8'];

src/api/CaptureApi.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
var sdkTracker = new SdkTracker();
8484
postBody = sdkTracker.insertDeveloperIdTracker(postBody, 'module:model/CapturePaymentRequest', this.apiClient.merchantConfig.runEnvironment, this.apiClient.merchantConfig.defaultDeveloperId);
8585

86+
8687
var pathParams = {
8788
'id': id
8889
};
@@ -93,6 +94,7 @@
9394
var formParams = {
9495
};
9596

97+
9698
var authNames = [];
9799
var contentTypes = ['application/json;charset=utf-8'];
98100
var accepts = ['application/hal+json;charset=utf-8'];

src/api/ChargebackDetailsApi.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
}
8686

8787

88+
8889
var pathParams = {
8990
};
9091
var queryParams = {
@@ -97,6 +98,7 @@
9798
var formParams = {
9899
};
99100

101+
100102
var authNames = [];
101103
var contentTypes = ['application/json;charset=utf-8'];
102104
var accepts = ['application/hal+json', 'application/xml'];

src/api/ChargebackSummariesApi.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
}
8686

8787

88+
8889
var pathParams = {
8990
};
9091
var queryParams = {
@@ -97,6 +98,7 @@
9798
var formParams = {
9899
};
99100

101+
100102
var authNames = [];
101103
var contentTypes = ['application/json;charset=utf-8'];
102104
var accepts = ['application/hal+json', 'application/xml'];

src/api/ConversionDetailsApi.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
}
8686

8787

88+
8889
var pathParams = {
8990
};
9091
var queryParams = {
@@ -97,6 +98,7 @@
9798
var formParams = {
9899
};
99100

101+
100102
var authNames = [];
101103
var contentTypes = ['application/json;charset=utf-8'];
102104
var accepts = ['application/hal+json', 'application/xml'];

0 commit comments

Comments
 (0)