Skip to content

Commit 4674c15

Browse files
authored
Merge pull request #56 from rosette-api/RCB-454_concurrency
Updated to reuse HTTP(S) client
2 parents 6ac835a + 38fea64 commit 4674c15

15 files changed

+52
-48
lines changed

lib/Api.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
**/
1414
"use strict";
1515

16+
var http = require("http");
17+
var https = require("https");
18+
var URL = require("url");
19+
1620
var rosetteConstants = require("./rosetteConstants");
1721
var RosetteException = require("./rosetteExceptions");
1822
var paramObj = require("./parameters");
@@ -54,6 +58,12 @@ function Api(userKey, serviceURL) {
5458
*/
5559
this.parameters = new paramObj();
5660

61+
/**
62+
* @type {object}
63+
* @desc The HTTP(S) object
64+
*/
65+
this.protocol = https;
66+
5767
/**
5868
* @type {string}
5969
* @desc URL of the API
@@ -69,6 +79,10 @@ function Api(userKey, serviceURL) {
6979
} else {
7080
this.serviceURL = "https://api.rosette.com/rest/v1/";
7181
}
82+
var urlParts = URL.parse(serviceURL);
83+
if (urlParts.protocol === "http:") {
84+
this.protocol = http;
85+
}
7286

7387
};
7488

@@ -84,7 +98,7 @@ Api.prototype.rosette = function(endpoint, callback) {
8498
var e = new endpoint();
8599

86100
// send parameters to the specified endpoint
87-
e.getResults(api.parameters, api.userKey, api.serviceURL, function(err, res) {
101+
e.getResults(api.parameters, api.userKey, api.protocol, api.serviceURL, function(err, res) {
88102
if (err) {
89103
return callback(err);
90104
} else {

lib/categories.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ function categories() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
categories.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
categories.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
if (parameters.documentFile != null) {
42-
parameters.loadFile(parameters.documentFile, parameters, userKey, serviceURL, "categories", callback);
42+
parameters.loadFile(parameters.documentFile, parameters, userKey, protocol, serviceURL, "categories", callback);
4343
} else {
4444

4545
// validate parameters
@@ -51,7 +51,7 @@ categories.prototype.getResults = function(parameters, userKey, serviceURL, call
5151
// configure URL
5252
var urlParts = URL.parse(serviceURL + "categories");
5353
var req = new rosetteRequest();
54-
req.makeRequest('POST', userKey, urlParts, parameters, callback);
54+
req.makeRequest('POST', userKey, protocol, urlParts, parameters, callback);
5555
}
5656
}
5757

lib/entities.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ function entities() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
entities.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
entities.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
if (parameters.documentFile != null) {
4242
if (parameters.loadParams().linked == true) {
4343
console.warn("entities/linked endpoint has been combined with /entities. Do not specify the linked parameter.");
44-
parameters.loadFile(parameters.loadParams().documentFile, parameters, userKey, serviceURL, "entities/linked", callback);
44+
parameters.loadFile(parameters.loadParams().documentFile, parameters, userKey, protocol, serviceURL, "entities/linked", callback);
4545
} else {
46-
parameters.loadFile(parameters.loadParams().documentFile, parameters, userKey, serviceURL, "entities", callback);
46+
parameters.loadFile(parameters.loadParams().documentFile, parameters, userKey, protocol, serviceURL, "entities", callback);
4747
}
4848

4949

@@ -66,7 +66,7 @@ entities.prototype.getResults = function(parameters, userKey, serviceURL, callba
6666

6767

6868
var req = new rosetteRequest();
69-
req.makeRequest('POST', userKey, urlParts, parameters, callback);
69+
req.makeRequest('POST', userKey, protocol, urlParts, parameters, callback);
7070

7171
}
7272
}

lib/info.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ function info() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
info.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
info.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
// configure URL
4242
var urlParts = URL.parse(serviceURL + "info");
4343
var req = new rosetteRequest();
44-
req.makeRequest('GET', userKey, urlParts, parameters, callback);
44+
req.makeRequest('GET', userKey, protocol, urlParts, parameters, callback);
4545
};
4646

4747
module.exports = info;

lib/language.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ function language() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
language.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
language.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
if (parameters.documentFile != null) {
42-
parameters.loadFile(parameters.documentFile, parameters, userKey, serviceURL, "language", callback);
42+
parameters.loadFile(parameters.documentFile, parameters, userKey, protocol, serviceURL, "language", callback);
4343
} else {
4444

4545
// validate parameters
@@ -51,7 +51,7 @@ language.prototype.getResults = function(parameters, userKey, serviceURL, callba
5151
// configure URL
5252
var urlParts = URL.parse(serviceURL + "language");
5353
var req = new rosetteRequest();
54-
req.makeRequest('POST', userKey, urlParts, parameters, callback);
54+
req.makeRequest('POST', userKey, protocol, urlParts, parameters, callback);
5555
}
5656
}
5757

lib/morphology.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ function morphology() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
morphology.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
morphology.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040
//console.log(parameters)
4141
if (parameters.documentFile != null) {
42-
parameters.loadFile(parameters.documentFile, parameters, userKey, serviceURL, "morphology" + "/" + parameters.morphology, callback);
42+
parameters.loadFile(parameters.documentFile, parameters, userKey, protocol, serviceURL, "morphology" + "/" + parameters.morphology, callback);
4343
} else {
4444

4545
// validate parameters
@@ -53,7 +53,7 @@ morphology.prototype.getResults = function(parameters, userKey, serviceURL, call
5353
// configure URL
5454
var urlParts = URL.parse(serviceURL + "morphology" + "/" + parameters.morphology);
5555
var req = new rosetteRequest();
56-
req.makeRequest('POST', userKey, urlParts, parameters, callback);
56+
req.makeRequest('POST', userKey, protocol, urlParts, parameters, callback);
5757
}
5858
}
5959

lib/nameSimilarity.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ function nameSimilarity() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
nameSimilarity.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
nameSimilarity.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
if (parameters.documentFile != null) {
42-
parameters.loadFile(parameters.documentFile, parameters, userKey, serviceURL, "name-similarity", callback);
42+
parameters.loadFile(parameters.documentFile, parameters, userKey, protocol, serviceURL, "name-similarity", callback);
4343
} else {
4444

4545
// validate parameters
@@ -49,7 +49,7 @@ nameSimilarity.prototype.getResults = function(parameters, userKey, serviceURL,
4949
// configure URL
5050
var urlParts = URL.parse(serviceURL + "name-similarity");
5151
var req = new rosetteRequest();
52-
req.makeRequest('POST', userKey, urlParts, parameters, callback);
52+
req.makeRequest('POST', userKey, protocol, urlParts, parameters, callback);
5353
}
5454
}
5555

lib/nameTranslation.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ function nameTranslation() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
nameTranslation.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
nameTranslation.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
if (parameters.documentFile != null) {
42-
parameters.loadFile(parameters.documentFile, parameters, userKey, serviceURL, "name-translation", callback);
42+
parameters.loadFile(parameters.documentFile, parameters, userKey, protocol, serviceURL, "name-translation", callback);
4343
} else {
4444

4545
// validate parameters
@@ -51,7 +51,7 @@ nameTranslation.prototype.getResults = function(parameters, userKey, serviceURL,
5151
// configure URL
5252
var urlParts = URL.parse(serviceURL + "name-translation");
5353
var req = new rosetteRequest();
54-
req.makeRequest('POST', userKey, urlParts, parameters, callback);
54+
req.makeRequest('POST', userKey, protocol, urlParts, parameters, callback);
5555
}
5656
}
5757

lib/parameters.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ parameters.prototype.loadParams = function() {
120120
* Reads a file and sets the content, and unit parameters accordingly
121121
*@param {file} filePath - The file path from which the desired file will be loaded
122122
*/
123-
parameters.prototype.loadFile = function(filePath, loadedParameters, userKey, serviceURL, endpoint, callback) {
123+
parameters.prototype.loadFile = function(filePath, loadedParameters, userKey, protocol, serviceURL, endpoint, callback) {
124124
var str = fs.readFileSync(filePath, "utf8");
125125
var mp = new Multipart()
126126

@@ -146,10 +146,6 @@ parameters.prototype.loadFile = function(filePath, loadedParameters, userKey, se
146146
}).on('end', function() {
147147

148148
var urlParts = URL.parse(serviceURL + endpoint);
149-
var protocol = https;
150-
if (urlParts.protocol === "http:") {
151-
protocol = http;
152-
}
153149

154150
var headers = {
155151
"accept": 'application/json',

lib/ping.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ function ping() {
3636
* @param {string} serviceURL - The base service URL to be used to access the Rosette API
3737
* @param {function} callback - Callback function to be exectuted after the function to which it is passed is complete
3838
*/
39-
ping.prototype.getResults = function(parameters, userKey, serviceURL, callback) {
39+
ping.prototype.getResults = function(parameters, userKey, protocol, serviceURL, callback) {
4040

4141
// configure URL
4242
var urlParts = URL.parse(serviceURL + "ping");
4343
var req = new rosetteRequest();
44-
req.makeRequest('GET', userKey, urlParts, parameters, callback);
44+
req.makeRequest('GET', userKey, protocol, urlParts, parameters, callback);
4545
};
4646

4747
module.exports = ping;

0 commit comments

Comments
 (0)