Skip to content

Commit 49421df

Browse files
committed
[DCS] Adds required version query param
The Document Conversion Service will soon require a "version" query parameter on all requests. In the future, this will be used to avoid breaking changes to behavior when the service is upgraded to newer versions. By default, if the SDK user does not specify a version date, the parameter will be set to yesterday's date (in UTC). However, it should be noted that not specifying a fixed value may result in future requests failing or outputting unexpected results due to new or changed behavior or API/behavior-breaking changes as the service is upgraded.
1 parent f61ba47 commit 49421df

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,8 @@ var fs = require('fs');
296296
var document_conversion = watson.document_conversion({
297297
username: '<username>',
298298
password: '<password>',
299-
version: 'v1-experimental'
299+
version: 'v1-experimental',
300+
qs: { version: '2015-12-01' }
300301
});
301302

302303
// convert a single document

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"csv-stringify": "~0.0.8",
7373
"extend": "~3.0.0",
7474
"isstream": "~0.1.2",
75+
"moment": "~2.10.6",
7576
"object.omit": "~2.0.0",
7677
"object.pick": "~1.1.1",
7778
"request": "~2.67.0",

services/document_conversion/v1-experimental.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ var extend = require('extend');
2020
var requestFactory = require('../../lib/requestwrapper');
2121
var isStream = require('isstream');
2222
var omit = require('object.omit');
23+
var moment = require('moment');
2324

2425
function DocumentConversion(options) {
2526
// Default URL
2627
var serviceDefaults = {
27-
url: 'https://gateway.watsonplatform.net/document-conversion-experimental/api'
28+
url: 'https://gateway.watsonplatform.net/document-conversion-experimental/api',
29+
qs: { version: moment.utc().subtract(1, 'd').format('YYYY-MM-DD') }
2830
};
2931

3032
// Replace default options with user provided

test/test.document_conversion.v1-experimental.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var assert = require('assert');
44
var pick = require('object.pick');
5+
var extend = require('extend');
56
var watson = require('../lib/index');
67
var nock = require('nock');
78
var fs = require('fs');
@@ -11,7 +12,7 @@ describe('document_conversion', function() {
1112
var noop = function() {};
1213

1314
// Test params
14-
var service = {
15+
var service_options = {
1516
username: 'batman',
1617
password: 'bruce-wayne',
1718
url: 'http://ibm.com:80',
@@ -40,7 +41,7 @@ describe('document_conversion', function() {
4041
nock.cleanAll();
4142
});
4243

43-
var servInstance = watson.document_conversion(service);
44+
var servInstance = watson.document_conversion(service_options);
4445

4546
var missingParameter = function(err) {
4647
assert.ok((err instanceof Error) && /required parameters/.test(err));
@@ -72,7 +73,7 @@ describe('document_conversion', function() {
7273

7374
it('should generate a valid payload', function() {
7475
var req = servInstance.convert(payload, noop);
75-
assert.equal(req.uri.href, service.url + convertPath);
76+
assert(req.uri.href.startsWith(service_options.url + convertPath));
7677
assert.equal(req.method, 'POST');
7778
assert(req.formData);
7879
});
@@ -82,5 +83,17 @@ describe('document_conversion', function() {
8283
var config = JSON.parse(req.formData.config.value);
8384
assert(config.word.heading.fonts);
8485
});
86+
87+
it('should send the version query param', function() {
88+
var req = servInstance.convert(payload, noop);
89+
assert(req.uri.query);
90+
assert(req.uri.query.indexOf("version=") > -1)
91+
});
92+
93+
it('should allow the version query param to be overridden', function() {
94+
var custServInstance = watson.document_conversion(extend(service_options, { qs: { version: "2015-11-30"} }));
95+
var req = custServInstance.convert(payload, noop);
96+
assert(req.uri.query.indexOf("version=2015-11-30" > -1));
97+
});
8598
});
8699
});

0 commit comments

Comments
 (0)