Skip to content

Commit 01f3870

Browse files
Merge pull request watson-developer-cloud#232 from watson-developer-cloud/config_path
Config path
2 parents 2cf2d31 + 6a152e3 commit 01f3870

File tree

2 files changed

+27
-22
lines changed

2 files changed

+27
-22
lines changed

services/retrieve_and_rank/v1.js

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -304,30 +304,35 @@ RetrieveAndRank.prototype.listConfigs = function(params, callback) {
304304
RetrieveAndRank.prototype.uploadConfig = function(params, callback) {
305305
params = params || {};
306306

307-
if (!params.config_zip_path) {
307+
if (!params || !params.config_zip_path) {
308308
callback(new Error('Missing required parameters: config_zip_path'));
309309
return;
310-
} else if (!typeof(params.config_zip_path) === 'string') {
311-
callback(new Error('Parameters config_zip_path is not a string'));
310+
}
311+
var configFile = null;
312+
if (typeof params.config_zip_path === 'string') {
313+
configFile = fs.createReadStream(params.config_zip_path);
314+
} else if (isStream(params.config_zip_path)) {
315+
configFile = params.config_zip_path;
316+
} else {
317+
callback(new Error('config_zip_path needs to be a String or Stream'));
312318
return;
313319
}
314-
var configFile = fs.readFileSync(params.config_zip_path);
315320

316321
var parameters = {
317322
options: {
318323
url: '/v1/solr_clusters/{cluster_id}/config/{config_name}',
319324
method: 'POST',
320-
path: params,
321-
body: configFile,
322-
headers: {
323-
'content-type': 'application/zip'
324-
}
325+
path: params
325326
},
326327
requiredParams: ['cluster_id', 'config_name'],
327328
defaultOptions: this._options
328329
};
329330

330-
return requestFactory(parameters, callback);
331+
return configFile.on('response', function(response) {
332+
// Replace content-type
333+
response.headers['content-type'] = 'application/zip';
334+
}).pipe(requestFactory(parameters, callback));
335+
331336
};
332337

333338
/**

test/test.retrieve_and_rank.v1.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ describe('retrieve_and_rank', function() {
9898
it('can list Solr clusters', function(done) {
9999
search.listClusters({}, function(error, data) {
100100
assert.equal(data, listResponse);
101-
done();
101+
done(error);
102102
});
103103
});
104104

105105
it('can create a Solr cluster without specified config', function(done) {
106106
search.createCluster({}, function(error, data) {
107107
assert.equal(data, createResponse);
108-
done();
108+
done(error);
109109
});
110110
});
111111

@@ -171,7 +171,7 @@ describe('retrieve_and_rank', function() {
171171
},
172172
function(error, data) {
173173
assert.equal(data, configUploadResponse);
174-
done();
174+
done(error);
175175
});
176176
});
177177

@@ -210,7 +210,7 @@ describe('retrieve_and_rank', function() {
210210
config_name: configName
211211
}, function(error, data) {
212212
assert.equal(data, configGetResponse);
213-
done();
213+
done(error);
214214
});
215215
});
216216

@@ -230,7 +230,7 @@ describe('retrieve_and_rank', function() {
230230
config_name: configName
231231
}, function(error, data) {
232232
assert.equal(data, configDeleteResponse);
233-
done();
233+
done(error);
234234
});
235235
});
236236

@@ -252,7 +252,7 @@ describe('retrieve_and_rank', function() {
252252
},
253253
function(error, data) {
254254
assert.equal(data, collectionCreateResponse);
255-
done();
255+
done(error);
256256
});
257257
});
258258

@@ -278,7 +278,7 @@ describe('retrieve_and_rank', function() {
278278
cluster_id: clusterId
279279
}, function(error, data) {
280280
assert.equal(data, collectionListResponse);
281-
done();
281+
done(error);
282282
});
283283
});
284284

@@ -292,7 +292,7 @@ describe('retrieve_and_rank', function() {
292292
collection_name: collectionName
293293
}, function(error, data) {
294294
assert.equal(data, collectionDeleteResponse);
295-
done();
295+
done(error);
296296
});
297297
});
298298

@@ -365,28 +365,28 @@ describe('retrieve_and_rank', function() {
365365
}, function(error, data) {
366366
assert.equal(data, createRankerResponse);
367367
assert.equal(req.method, 'POST');
368-
done();
368+
done(error);
369369
});
370370
});
371371
it('should generate a valid payload when getting the rankers', function(done) {
372372
var req = search.listRankers(null, function(error, data) {
373373
assert.equal(data, getRankerResponse);
374374
assert.equal(req.method, 'GET');
375-
done();
375+
done(error);
376376
});
377377
});
378378
it('should generate a valid payload when getting the ranker status', function(done) {
379379
var req = search.rankerStatus({ranker_id : rankerId}, function(error, data) {
380380
assert.equal(data, getRankerResponse);
381381
assert.equal(req.method, 'GET');
382-
done();
382+
done(error);
383383
});
384384
});
385385
it('should generate a valid payload when deleting a ranker', function(done) {
386386
var req = search.deleteRanker({ranker_id : rankerId}, function(error, data) {
387387
assert.equal(data, deleteRankerResponse);
388388
assert.equal(req.method, 'DELETE');
389-
done();
389+
done(error);
390390
});
391391
});
392392

0 commit comments

Comments
 (0)