Skip to content

Commit 1726213

Browse files
author
Chris Park
committed
Merge branch 'develop'
2 parents a2a55b4 + 1db4e61 commit 1726213

25 files changed

+272
-41
lines changed

Jenkinsfile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
node {
2+
def SOURCEDIR = pwd()
3+
try {
4+
stage("Clean up") {
5+
step([$class: 'WsCleanup'])
6+
}
7+
stage("Checkout Code") {
8+
checkout scm
9+
}
10+
stage("Test with Docker") {
11+
withEnv(["API_KEY=${env.ROSETTE_API_KEY}", "ALT_URL=${env.BINDING_TEST_URL}"]) {
12+
sh "docker run --rm -e API_KEY=${API_KEY} -e ALT_URL=${ALT_URL} -v ${SOURCEDIR}:/source rosetteapi/docker-nodejs"
13+
}
14+
}
15+
slack(true)
16+
} catch (e) {
17+
currentBuild.result = "FAILED"
18+
slack(false)
19+
throw e
20+
}
21+
}
22+
23+
def slack(boolean success) {
24+
def color = success ? "#00FF00" : "#FF0000"
25+
def status = success ? "SUCCESSFUL" : "FAILED"
26+
def message = status + ": Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
27+
slackSend(color: color, channel: "#rapid", message: message)
28+
}

Jenkinsfile.examples

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
node {
2+
def SOURCEDIR = pwd()
3+
def TEST_CONTAINER = 'examples/nodejs-test'
4+
def DOCKERFILE_DIR = './examples'
5+
try {
6+
stage("Clean up") {
7+
step([$class: 'WsCleanup'])
8+
}
9+
stage("Checkout Code") {
10+
checkout scm
11+
}
12+
stage("Build Dockerfile") {
13+
dir ("${DOCKERFILE_DIR}") {
14+
docker.build("${TEST_CONTAINER}")
15+
}
16+
}
17+
stage("Run Examples") {
18+
withEnv(["API_KEY=${env.ROSETTE_API_KEY}", "ALT_URL=${env.BINDING_TEST_URL}"]) {
19+
def examplesDir = "${SOURCEDIR}" + '/examples'
20+
sh "docker run --rm -e API_KEY=${API_KEY} -e ALT_URL=${ALT_URL} -v ${examplesDir}:/source ${TEST_CONTAINER}"
21+
}
22+
}
23+
slack(true)
24+
} catch (e) {
25+
currentBuild.result = "FAILED"
26+
slack(false)
27+
throw e
28+
}
29+
}
30+
31+
def slack(boolean success) {
32+
def color = success ? "#00FF00" : "#FF0000"
33+
def status = success ? "SUCCESSFUL" : "FAILED"
34+
def message = status + ": Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
35+
slackSend(color: color, channel: "#rapid", message: message)
36+
}

README.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ This is the Rosette API client binding for node.js.
77
## Getting Started
88
Install the module with: `npm install rosette-api`
99

10+
If the version you are using is not [the latest from npm](https://www.npmjs.com/package/rosette-api) (or `npm show rosette-api@* version`),
11+
please check for its [**compatibilty with api.rosette.com**](https://developer.rosette.com/features-and-functions?javascript).
12+
If you have an on-premise version of Rosette API server, please contact support for
13+
binding compatibility with your installation.
14+
15+
To check your installed version:
16+
17+
- `npm list rosette-api` for local installation
18+
- `npm list -g rosette-api` for global installation
19+
20+
https://www.npmjs.com/package/rosette-api
21+
1022
## Docker ##
1123
A Docker image for running the examples against the compiled source library is available on Docker Hub.
1224

@@ -37,10 +49,10 @@ api.rosette(endpoint, function(err, res){
3749
## API Parameters
3850
| Parameter | Endpoint | Required
3951
| ------------- |------------- |-------------
40-
| content | categories, entities, language, morphology, relationships, sentences, sentiment, tokens, transliteration | Either content or contentUri required, transliteration requires content only |
41-
| contentUri | categories, entities, language, morphology, relationships, sentences, sentiment, tokens | Either content or contentUri required |
42-
| language | categories, entities, language, morphology, relationships, sentences, sentiment, tokens, name similarity | No |
43-
| documentFile | categories, entities, language, morphology, relationships, sentences, sentiment, tokens | No |
52+
| content | categories, entities, language, morphology, relationships, sentences, sentiment, tokens, topics, transliteration | Either content or contentUri required, transliteration requires content only |
53+
| contentUri | categories, entities, language, morphology, relationships, sentences, sentiment, tokens, topics | Either content or contentUri required |
54+
| language | categories, entities, language, morphology, relationships, sentences, sentiment, tokens, topics, name similarity | No |
55+
| documentFile | categories, entities, language, morphology, relationships, sentences, sentiment, tokens, topics | No |
4456
| name1 | name similarity | Yes |
4557
| name2 | name similarity| Yes |
4658
| name | name translation | Yes |
@@ -61,5 +73,11 @@ api.rosette(endpoint, function(err, res){
6173
## Additional Examples
6274
See [examples](examples).
6375

76+
## API Documentation
77+
See [documentation](http://rosette-api.github.io/nodejs)
78+
79+
## Release Notes
80+
See [wiki](https://github.com/rosette-api/nodejs/wiki/Release-Notes)
81+
6482
## Additional Information
6583
See [Rosette API site](https://developer.rosette.com/)

examples/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ RUN apt-get -y update && apt-get install -y git && apt-get install -y vim && apt
77
ENV API_KEY api_key
88

99
#set the working directory
10-
RUN mkdir /nodejs-dev
11-
WORKDIR /nodejs-dev
10+
RUN mkdir -p /nodejs-dev/examples
11+
WORKDIR /nodejs-dev/examples
1212
COPY runAll.sh runAll.sh
1313
RUN chmod 0755 runAll.sh
1414

examples/runAll.sh

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function checkAPI() {
2121
if [ ! -z $match ]; then
2222
echo -e "\nInvalid Rosette API Key"
2323
exit 1
24-
fi
24+
fi
2525
}
2626

2727
# add the trailing slash of the alt_url if necessary
@@ -41,7 +41,7 @@ function validateURL() {
4141
if [ "${match}" = "" ]; then
4242
echo -e "\n${ping_url} server not responding\n"
4343
exit 1
44-
fi
44+
fi
4545
}
4646

4747
function runExample() {
@@ -93,19 +93,21 @@ cp -r -n /source/. .
9393
#Run the examples
9494
if [ ! -z ${API_KEY} ]; then
9595
checkAPI
96-
#Prerequisite
97-
cd ./examples
96+
npm install rosette-api
97+
cp -r node_modules/rosette-api/lib ../lib
98+
pushd ../lib
99+
npm install multipart-stream
100+
popd
98101
npm install argparse
99102
npm install temporary
100-
npm install multipart-stream
101103
if [ ! -z ${FILENAME} ]; then
102104
runExample ${FILENAME}
103105
else
104106
for file in *.js; do
105107
runExample ${file}
106108
done
107109
fi
108-
else
110+
else
109111
HELP
110112
fi
111113

examples/topics.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
"use strict";
2+
3+
var Api = require("../lib/Api");
4+
var ArgumentParser = require("argparse").ArgumentParser;
5+
6+
var parser = new ArgumentParser({
7+
addHelp: true,
8+
description: "Get the key phrases and concepts in a piece of text"
9+
});
10+
parser.addArgument(["--key"], {help: "Rosette API key", required: true});
11+
parser.addArgument(["--url"], {help: "Rosette API alt-url", required: false});
12+
var args = parser.parseArgs();
13+
var api = new Api(args.key, args.url);
14+
var endpoint = "topics";
15+
16+
var topics_data = "Lily Collins is in talks to join Nicholas Hoult in Chernin Entertainment and Fox Searchlight's J.R.R. Tolkien biopic Tolkien. Anthony Boyle, known for playing Scorpius Malfoy in the British play Harry Potter and the Cursed Child, also has signed on for the film centered on the famed author. In Tolkien, Hoult will play the author of the Hobbit and Lord of the Rings book series that were later adapted into two Hollywood trilogies from Peter Jackson. Dome Karukoski is directing the project."
17+
var content = topics_data;
18+
api.parameters.content = content;
19+
20+
api.rosette(endpoint, function(err, res){
21+
if(err){
22+
console.log(err);
23+
} else {
24+
console.log(JSON.stringify(res, null, 2));
25+
}
26+
});

lib/Api.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var translatedName = require("./nameTranslation");
3737
var tokens = require("./tokens");
3838
var syntax_dependencies = require("./syntax_dependencies");
3939
var transliteration = require("./transliteration");
40+
var topics = require("./topics");
4041

4142
/**
4243
* @class

lib/categories.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ categories.prototype.getResults = function(parameters, userKey, protocol, servic
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of content or contentUri", "bad arguments"));
4848
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
4949
return callback(new RosetteException("badArgument", "Cannot supply content and contentUri", "bad arguments"));

lib/entities.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ entities.prototype.getResults = function(parameters, userKey, protocol, serviceU
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
} else {
5151
// configure URL

lib/language.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ language.prototype.getResults = function(parameters, userKey, protocol, serviceU
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
} else {
5151
// configure URL

lib/morphology.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ morphology.prototype.getResults = function(parameters, userKey, protocol, servic
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
50-
} else if (parameters.morphology == null) {
50+
} else if (!parameters.morphology) {
5151
return callback(new RosetteException("badArgument", "Must supply type of morphology", "bad arguments"));
5252
} else {
5353
// configure URL

lib/nameDeduplication.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ nameDeduplication.prototype.getResults = function(parameters, userKey, protocol,
4242
return callback(new RosetteException("badArgument", "nameDeduplication does not support documentFile"));
4343
} else {
4444
// validate parameters
45-
if (parameters.loadParams().names == null) {
45+
if (!parameters.loadParams().names) {
4646
return callback(new RosetteException("badArgument", "Must supply a list of names for deduplication"));
4747
} else {
4848
// configure URL

lib/nameSimilarity.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ nameSimilarity.prototype.getResults = function(parameters, userKey, protocol, se
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().name1 == null || parameters.loadParams().name2 == null) {
46+
if (!parameters.loadParams().name1 || !parameters.loadParams().name2) {
4747
return callback(new RosetteException("badArgument", "Must supply both name1 and name2 parameters to be matched."));
4848
} else {
4949
// configure URL

lib/nameTranslation.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ nameTranslation.prototype.getResults = function(parameters, userKey, protocol, s
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().name == null) {
46+
if (!parameters.loadParams().name) {
4747
return callback(new RosetteException("badArgument", "Must supply name parameter", "bad arguments"));
48-
} else if (parameters.loadParams().targetLanguage == null) {
48+
} else if (!parameters.loadParams().targetLanguage) {
4949
return callback(new RosetteException("badArgument", "Must supply target language parameter", "bad arguments"));
5050
} else {
5151
// configure URL

lib/relationships.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ relationships.prototype.getResults = function(parameters, userKey, protocol, ser
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
}
5151

lib/rosetteRequest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var querystring = require('querystring');
2828
*
2929
* @type string
3030
*/
31-
var BINDING_VERSION = "1.7.0";
31+
var BINDING_VERSION = "1.8.0";
3232

3333
/**
3434
* @class

lib/sentences.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ sentences.prototype.getResults = function(parameters, userKey, protocol, service
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
} else {
5151
// configure URL

lib/sentiment.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ sentiment.prototype.getResults = function(parameters, userKey, protocol, service
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
} else {
5151

lib/syntax_dependencies.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ syntax_dependencies.prototype.getResults = function(parameters, userKey, protoco
4444
} else {
4545

4646
// validate parameters
47-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
47+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4848
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
49-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
49+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
5050
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5151
} else {
5252
// configure URL

lib/textEmbedding.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ textEmbedding.prototype.getResults = function(parameters, userKey, protocol, ser
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
} else {
5151
// configure URL

lib/tokens.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ tokens.prototype.getResults = function(parameters, userKey, protocol, serviceURL
4343
} else {
4444

4545
// validate parameters
46-
if (parameters.loadParams().content == null && parameters.loadParams().contentUri == null) {
46+
if (!parameters.loadParams().content && !parameters.loadParams().contentUri) {
4747
return callback(new RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments"));
48-
} else if (parameters.loadParams().content != null && parameters.loadParams().contentUri != null) {
48+
} else if (parameters.loadParams().content && parameters.loadParams().contentUri) {
4949
return callback(new RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments"));
5050
} else {
5151
// configure URL

0 commit comments

Comments
 (0)