From 6ce769f91a160bbded5f24231efa87425520d7ab Mon Sep 17 00:00:00 2001 From: sofiat Date: Fri, 4 Jun 2021 21:06:07 +0100 Subject: [PATCH 1/3] fix: update message resource --- lib/apis/build/index.js | 115 ++++++++++++ lib/apis/connect/index.js | 63 +++++++ lib/apis/constants.js | 31 ++++ lib/apis/index.js | 30 +++ lib/apis/request/index.js | 169 +++++++++++++++++ lib/apis/resources/conversation.js | 275 ++++++++++++++++++++++++++++ lib/apis/resources/entity.js | 27 +++ lib/apis/resources/index.js | 34 ++++ lib/apis/resources/message.js | 73 ++++++++ lib/apis/resources/response.js | 142 +++++++++++++++ lib/apis/resources/sapcaiError.js | 36 ++++ lib/apis/train/bots.js | 71 ++++++++ lib/apis/train/entities.js | 92 ++++++++++ lib/apis/train/gazettes.js | 260 ++++++++++++++++++++++++++ lib/apis/train/index.js | 255 ++++++++++++++++++++++++++ lib/apis/train/intents.js | 281 +++++++++++++++++++++++++++++ lib/apis/train/logs.js | 134 ++++++++++++++ lib/client.js | 33 ++++ lib/index.js | 22 +++ 19 files changed, 2143 insertions(+) create mode 100644 lib/apis/build/index.js create mode 100644 lib/apis/connect/index.js create mode 100644 lib/apis/constants.js create mode 100644 lib/apis/index.js create mode 100644 lib/apis/request/index.js create mode 100644 lib/apis/resources/conversation.js create mode 100644 lib/apis/resources/entity.js create mode 100644 lib/apis/resources/index.js create mode 100644 lib/apis/resources/message.js create mode 100644 lib/apis/resources/response.js create mode 100644 lib/apis/resources/sapcaiError.js create mode 100644 lib/apis/train/bots.js create mode 100644 lib/apis/train/entities.js create mode 100644 lib/apis/train/gazettes.js create mode 100644 lib/apis/train/index.js create mode 100644 lib/apis/train/intents.js create mode 100644 lib/apis/train/logs.js create mode 100644 lib/client.js create mode 100644 lib/index.js diff --git a/lib/apis/build/index.js b/lib/apis/build/index.js new file mode 100644 index 0000000..0f997bc --- /dev/null +++ b/lib/apis/build/index.js @@ -0,0 +1,115 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _promise = require('babel-runtime/core-js/promise'); + +var _promise2 = _interopRequireDefault(_promise); + +var _superagent = require('superagent'); + +var _superagent2 = _interopRequireDefault(_superagent); + +var _superagentProxy = require('superagent-proxy'); + +var _superagentProxy2 = _interopRequireDefault(_superagentProxy); + +var _superagentPromise = require('superagent-promise'); + +var _superagentPromise2 = _interopRequireDefault(_superagentPromise); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var agent = (0, _superagentPromise2.default)((0, _superagentProxy2.default)(_superagent2.default), _promise2.default); + +var Build = function Build(token, language) { + (0, _classCallCheck3.default)(this, Build); + + _initialiseProps.call(this); + + this.token = token; + this.language = language; +}; + +var _initialiseProps = function _initialiseProps() { + var _this = this; + + this.dialog = function (message) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var memory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var log_level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'info'; + + var token = options.token || _this.token; + var proxy = options.proxy; + var data = { + message: message, + conversation_id: options.conversationId, + language: options.language || _this.language, + log_level: log_level + }; + if (memory) data['memory'] = memory; + + var request = agent('POST', _constants2.default.DIALOG_ENDPOINT + '/dialog').set('Authorization', 'Token ' + token); + if (proxy) { + request.proxy(proxy); + } + return request.send(data).then(function (res) { + return res.body.results; + }); + }; + + this.getConversation = function (user, bot, version, conversationId) { + var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + + var token = options.token || _this.token; + var proxy = options.proxy; + + var request = agent('GET', _constants2.default.DIALOG_ENDPOINT + '/users/' + user + '/bots/' + bot + '/versions/' + version + '/builder/conversation_states/' + conversationId).set('Authorization', 'Token ' + token); + if (proxy) { + request.proxy(proxy); + } + return request.send(); + }; + + this.updateConversation = function (user, bot, version, conversationId) { + var data = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {}; + + var token = options.token || _this.token; + var proxy = options.proxy; + if (data.memory && data.memory.constructor !== Object) { + return _promise2.default.reject('Invalid memory parameter'); + } + + var request = agent('PUT', _constants2.default.DIALOG_ENDPOINT + '/users/' + user + '/bots/' + bot + '/versions/' + version + '/builder/conversation_states/' + conversationId).set('Authorization', 'Token ' + token); + if (proxy) { + request.proxy(proxy); + } + return request.send(data); + }; + + this.deleteConversation = function (user, bot, version, conversationId) { + var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + + var token = options.token || _this.token; + var proxy = options.proxy; + + var request = agent('DELETE', _constants2.default.DIALOG_ENDPOINT + '/users/' + user + '/bots/' + bot + '/versions/' + version + '/builder/conversation_states/' + conversationId).set('Authorization', 'Token ' + token); + if (proxy) { + request.proxy(proxy); + } + return request.send(); + }; +}; + +exports.default = Build; \ No newline at end of file diff --git a/lib/apis/connect/index.js b/lib/apis/connect/index.js new file mode 100644 index 0000000..a81b285 --- /dev/null +++ b/lib/apis/connect/index.js @@ -0,0 +1,63 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _promise = require('babel-runtime/core-js/promise'); + +var _promise2 = _interopRequireDefault(_promise); + +var _superagent = require('superagent'); + +var _superagent2 = _interopRequireDefault(_superagent); + +var _superagentProxy = require('superagent-proxy'); + +var _superagentProxy2 = _interopRequireDefault(_superagentProxy); + +var _superagentPromise = require('superagent-promise'); + +var _superagentPromise2 = _interopRequireDefault(_superagentPromise); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +var _resources = require('../resources'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var agent = (0, _superagentPromise2.default)((0, _superagentProxy2.default)(_superagent2.default), _promise2.default); + +var Connect = function Connect(token) { + var _this = this; + + (0, _classCallCheck3.default)(this, Connect); + + this.handleMessage = function (req, res, onMessageReceived) { + if (typeof res.status === 'function') { + res.status(200).send(); + } else { + res.status = 200; + } + + return onMessageReceived(new _resources.Message(req.body, _this.token)); + }; + + this.sendMessage = function (messages, conversationId) { + return agent('POST', _constants2.default.MESSAGE_ENDPOINT.replace(':conversation_id', conversationId)).set('Authorization', 'Token ' + _this.token).send({ messages: messages }); + }; + + this.broadcastMessage = function (messages) { + return agent('POST', _constants2.default.CONVERSATION_ENDPOINT).set('Authorization', 'Token ' + _this.token).send({ messages: messages }); + }; + + this.token = token; +}; + +exports.default = Connect; \ No newline at end of file diff --git a/lib/apis/constants.js b/lib/apis/constants.js new file mode 100644 index 0000000..ccb07eb --- /dev/null +++ b/lib/apis/constants.js @@ -0,0 +1,31 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = { + REQUEST_ENDPOINT: 'https://api.cai.tools.sap/v2/request', + CONVERSE_ENDPOINT: 'https://api.cai.tools.sap/v2/converse', + DIALOG_ENDPOINT: 'https://api.cai.tools.sap/build/v1', + CONVERSATION_ENDPOINT: 'https://api.cai.tools.sap/connect/v1/messages', + MESSAGE_ENDPOINT: 'https://api.cai.tools.sap/connect/v1/conversations/:conversation_id/messages', + TRAIN_ENDPOINT: 'https://api.cai.tools.sap/train/v2', + + ACT_ASSERT: 'assert', + ACT_COMMAND: 'command', + ACT_WH_QUERY: 'wh-query', + ACT_YN_QUERY: 'yn-query', + + TYPE_ABBREVIATION: 'abbr:', + TYPE_ENTITY: 'enty:', + TYPE_DESCRIPTION: 'desc:', + TYPE_HUMAN: 'hum:', + TYPE_LOCATION: 'loc:', + TYPE_NUMBER: 'num:', + + SENTIMENT_VERY_POSITIVE: 'vpositive', + SENTIMENT_POSITIVE: 'positive', + SENTIMENT_NEUTRAL: 'neutral', + SENTIMENT_NEGATIVE: 'negative', + SENTIMENT_VERY_NEGATIVE: 'vnegative' +}; \ No newline at end of file diff --git a/lib/apis/index.js b/lib/apis/index.js new file mode 100644 index 0000000..ffef926 --- /dev/null +++ b/lib/apis/index.js @@ -0,0 +1,30 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _request = require('./request'); + +var _request2 = _interopRequireDefault(_request); + +var _connect = require('./connect'); + +var _connect2 = _interopRequireDefault(_connect); + +var _train = require('./train'); + +var _train2 = _interopRequireDefault(_train); + +var _build = require('./build'); + +var _build2 = _interopRequireDefault(_build); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = { + request: _request2.default, + connect: _connect2.default, + train: _train2.default, + build: _build2.default +}; \ No newline at end of file diff --git a/lib/apis/request/index.js b/lib/apis/request/index.js new file mode 100644 index 0000000..34ff799 --- /dev/null +++ b/lib/apis/request/index.js @@ -0,0 +1,169 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends2 = require('babel-runtime/helpers/extends'); + +var _extends3 = _interopRequireDefault(_extends2); + +var _regenerator = require('babel-runtime/regenerator'); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _promise = require('babel-runtime/core-js/promise'); + +var _promise2 = _interopRequireDefault(_promise); + +var _superagent = require('superagent'); + +var _superagent2 = _interopRequireDefault(_superagent); + +var _superagentProxy = require('superagent-proxy'); + +var _superagentProxy2 = _interopRequireDefault(_superagentProxy); + +var _superagentPromise = require('superagent-promise'); + +var _superagentPromise2 = _interopRequireDefault(_superagentPromise); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +var _resources = require('../resources'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var agent = (0, _superagentPromise2.default)((0, _superagentProxy2.default)(_superagent2.default), _promise2.default); + +var Request = function Request(token, language) { + (0, _classCallCheck3.default)(this, Request); + + _initialiseProps.call(this); + + this.token = token; + this.language = language; +} + +/* + * /request (with text string) + */ + + +/* + * /converse + */ +; + +var _initialiseProps = function _initialiseProps() { + var _this = this; + + this.analyseText = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(text) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var token, proxy, data, request, res; + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + token = options.token || _this.token; + proxy = options.proxy; + data = { text: text, language: options.language || _this.language }; + + if (token) { + _context.next = 5; + break; + } + + throw new _resources.SapcaiError('Parameter token is missing'); + + case 5: + request = agent('POST', _constants2.default.REQUEST_ENDPOINT).set('Authorization', 'Token ' + token); + + if (proxy) { + request.proxy(proxy); + } + + _context.next = 9; + return request.send(data); + + case 9: + res = _context.sent; + return _context.abrupt('return', new _resources.Response(res.body.results)); + + case 11: + case 'end': + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x) { + return _ref.apply(this, arguments); + }; + }(); + + this.converseText = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(text) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var token, proxy, data, request, res; + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + token = options.token || _this.token; + proxy = options.proxy; + data = { + text: text, + language: options.language || _this.language, + conversation_token: options.conversationToken, + memory: options.memory + }; + + if (token) { + _context2.next = 5; + break; + } + + throw new _resources.SapcaiError('Parameter token is missing'); + + case 5: + request = agent('POST', _constants2.default.CONVERSE_ENDPOINT).set('Authorization', 'Token ' + token); + + if (proxy) { + request.proxy(proxy); + } + + _context2.next = 9; + return request.send(data); + + case 9: + res = _context2.sent; + return _context2.abrupt('return', new _resources.Conversation((0, _extends3.default)({}, res.body.results, { sapcaiToken: _this.token }))); + + case 11: + case 'end': + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3) { + return _ref2.apply(this, arguments); + }; + }(); +}; + +exports.default = Request; \ No newline at end of file diff --git a/lib/apis/resources/conversation.js b/lib/apis/resources/conversation.js new file mode 100644 index 0000000..e3cb4fc --- /dev/null +++ b/lib/apis/resources/conversation.js @@ -0,0 +1,275 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require('babel-runtime/regenerator'); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _extends2 = require('babel-runtime/helpers/extends'); + +var _extends3 = _interopRequireDefault(_extends2); + +var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _promise = require('babel-runtime/core-js/promise'); + +var _promise2 = _interopRequireDefault(_promise); + +var _superagent = require('superagent'); + +var _superagent2 = _interopRequireDefault(_superagent); + +var _superagentProxy = require('superagent-proxy'); + +var _superagentProxy2 = _interopRequireDefault(_superagentProxy); + +var _superagentPromise = require('superagent-promise'); + +var _superagentPromise2 = _interopRequireDefault(_superagentPromise); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var agent = (0, _superagentPromise2.default)((0, _superagentProxy2.default)(_superagent2.default), _promise2.default); + +var Conversation = function Conversation(_ref) { + var _this = this; + + var conversation_token = _ref.conversation_token, + next_actions = _ref.next_actions, + response = (0, _objectWithoutProperties3.default)(_ref, ['conversation_token', 'next_actions']); + (0, _classCallCheck3.default)(this, Conversation); + + this.reply = function () { + return _this.replies[0] || null; + }; + + this.nextAction = function () { + return _this.nextActions[0] || null; + }; + + this.joinedReplies = function () { + var sep = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' '; + return _this.replies.join(sep); + }; + + this.getMemory = function (alias) { + return alias ? _this.memory[alias] : _this.memory; + }; + + this.get = function (name) { + return _this.entities[name] && _this.entities[name][0] || null; + }; + + this.all = function (name) { + return _this.entities[name] || null; + }; + + this.isVPositive = function () { + return _this.sentiment === _constants2.default.SENTIMENT_VERY_POSITIVE; + }; + + this.isPositive = function () { + return _this.sentiment === _constants2.default.SENTIMENT_POSITIVE; + }; + + this.isNeutral = function () { + return _this.sentiment === _constants2.default.SENTIMENT_NEUTRAL; + }; + + this.isNegative = function () { + return _this.sentiment === _constants2.default.SENTIMENT_NEGATIVE; + }; + + this.isVNegative = function () { + return _this.sentiment === _constants2.default.SENTIMENT_VERY_NEGATIVE; + }; + + this.setMemory = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(memory) { + var res; + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return agent('PUT', _constants2.default.CONVERSE_ENDPOINT).set('Authorization', 'Token ' + _this.sapcaiToken).send({ memory: memory, conversation_token: _this.conversationToken }); + + case 2: + res = _context.sent; + + + _this.memory = (0, _extends3.default)({}, _this.memory, memory); + return _context.abrupt('return', res.body.results); + + case 5: + case 'end': + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x2) { + return _ref2.apply(this, arguments); + }; + }(); + + this.resetMemory = function () { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(alias) { + var data, res; + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + data = { conversation_token: _this.conversationToken, memory: {} }; + + if (alias) { + data.memory[alias] = null; + } + + _context2.next = 4; + return agent('PUT', _constants2.default.CONVERSE_ENDPOINT).set('Authorization', 'Token ' + _this.sapcaiToken).send(data); + + case 4: + res = _context2.sent; + + + _this.memory = (0, _extends3.default)({}, _this.memory, data.memory); + return _context2.abrupt('return', res.body.results); + + case 7: + case 'end': + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3) { + return _ref3.apply(this, arguments); + }; + }(); + + this.resetConversation = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() { + var res, key; + return _regenerator2.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return agent('DELETE', _constants2.default.CONVERSE_ENDPOINT).set('Authorization', 'Token ' + _this.sapcaiToken).send({ conversation_token: _this.conversationToken }); + + case 2: + res = _context3.sent; + + + _this.intents = []; + _this.replies = []; + _this.nextActions = []; + _this.entities = []; + _this.action = null; + for (key in _this.memory) { + _this.memory[key] = null; + } + + return _context3.abrupt('return', res.body.results); + + case 10: + case 'end': + return _context3.stop(); + } + } + }, _callee3, _this); + })); + + for (var key in response) { + this[key] = response[key]; + } + + this.nextActions = next_actions; + this.conversationToken = conversation_token; +} + +/** + * Returns the first reply if there is one + * @returns {String}: this first reply or null + */ + + +/** + * Returns the first next action if there is one + * @returns {String}: this first reply or null + */ + + +/** + * Returns a concatenation of the replies + * @returns {String}: the concatenation of the replies + */ + + +/** + * Returns the memory matching the alias + * or all the memory if no alias provided + * @returns {object}: the memory + */ + + +/** + * Returns the first Entity whose name matches the parameter + * @param {String} name: the entity's name + * @returns {Entity}: returns the first entity that matches - name - + */ + + +/** + * Returns all the entities whose name matches the parameter + * @param {String} name: the entity's name + * @returns {Array}: returns an array of Entity + */ + + +/** + * SENTIMENT HELPERS + * Returns whether or not the response sentiment corresponds to the checked one + * @returns {boolean}: true or false + */ + + +/** + * Merge the conversation memory with the one in parameter + * Returns the memory updated + * @returns {object}: the memory updated + */ + + +/** + * Reset the memory of the conversation + * @returns {object}: the updated memory + */ + + +/** + * Reset the conversation + * @returns {object}: the updated memory + */ +; + +exports.default = Conversation; \ No newline at end of file diff --git a/lib/apis/resources/entity.js b/lib/apis/resources/entity.js new file mode 100644 index 0000000..6596d82 --- /dev/null +++ b/lib/apis/resources/entity.js @@ -0,0 +1,27 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _lodash = require('lodash'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Entity = function Entity(name, data) { + var _this = this; + + (0, _classCallCheck3.default)(this, Entity); + + this.name = name; + this.raw = data; + (0, _lodash.forEach)(data, function (value, key) { + return _this[key] = value; + }); +}; + +exports.default = Entity; \ No newline at end of file diff --git a/lib/apis/resources/index.js b/lib/apis/resources/index.js new file mode 100644 index 0000000..e519fd0 --- /dev/null +++ b/lib/apis/resources/index.js @@ -0,0 +1,34 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Entity = exports.SapcaiError = exports.Message = exports.Response = exports.Conversation = undefined; + +var _conversation = require('./conversation'); + +var _conversation2 = _interopRequireDefault(_conversation); + +var _response = require('./response'); + +var _response2 = _interopRequireDefault(_response); + +var _message = require('./message'); + +var _message2 = _interopRequireDefault(_message); + +var _sapcaiError = require('./sapcaiError'); + +var _sapcaiError2 = _interopRequireDefault(_sapcaiError); + +var _entity = require('./entity'); + +var _entity2 = _interopRequireDefault(_entity); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.Conversation = _conversation2.default; +exports.Response = _response2.default; +exports.Message = _message2.default; +exports.SapcaiError = _sapcaiError2.default; +exports.Entity = _entity2.default; \ No newline at end of file diff --git a/lib/apis/resources/message.js b/lib/apis/resources/message.js new file mode 100644 index 0000000..2ecb9f0 --- /dev/null +++ b/lib/apis/resources/message.js @@ -0,0 +1,73 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); + +var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _promise = require('babel-runtime/core-js/promise'); + +var _promise2 = _interopRequireDefault(_promise); + +var _superagent = require('superagent'); + +var _superagent2 = _interopRequireDefault(_superagent); + +var _superagentProxy = require('superagent-proxy'); + +var _superagentProxy2 = _interopRequireDefault(_superagentProxy); + +var _superagentPromise = require('superagent-promise'); + +var _superagentPromise2 = _interopRequireDefault(_superagentPromise); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var agent = (0, _superagentPromise2.default)((0, _superagentProxy2.default)(_superagent2.default), _promise2.default); + +var Message = function Message(body, sapcaiToken) { + var _this = this; + + (0, _classCallCheck3.default)(this, Message); + + this.addReply = function (replies) { + return _this._messageStack = _this._messageStack.concat(replies); + }; + + this.reply = function () { + var replies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + + var messages = _this._messageStack; + + if (replies instanceof Array) { + messages.push.apply(messages, (0, _toConsumableArray3.default)(replies)); + } else { + messages.push(replies); + } + _this._messageStack = []; + return agent('POST', _constants2.default.MESSAGE_ENDPOINT.replace(':conversation_id', _this.conversationId)).set('Authorization', 'Token ' + _this.sapcaiToken).send({ messages: messages }); + }; + + for (var key in body) { + this[key] = body[key]; + } + + this.content = body.nlp.source; + this.type = body.nlp.type; + this.conversationId = body.conversation.conversation_id; + this.sapcaiToken = sapcaiToken; + this._messageStack = []; +}; + +exports.default = Message; diff --git a/lib/apis/resources/response.js b/lib/apis/resources/response.js new file mode 100644 index 0000000..c5b0e01 --- /dev/null +++ b/lib/apis/resources/response.js @@ -0,0 +1,142 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Response = function Response(response) { + var _this = this; + + (0, _classCallCheck3.default)(this, Response); + + this.get = function (name) { + return _this.entities[name] && _this.entities[name][0] || null; + }; + + this.all = function (name) { + return _this.entities[name] || null; + }; + + this.intent = function () { + return _this.intents[0] || null; + }; + + this.isAssert = function () { + return _this.act === _constants2.default.ACT_ASSERT; + }; + + this.isCommand = function () { + return _this.act === _constants2.default.ACT_COMMAND; + }; + + this.isWhQuery = function () { + return _this.act === _constants2.default.ACT_WH_QUERY; + }; + + this.isYnQuery = function () { + return _this.act === _constants2.default.ACT_YN_QUERY; + }; + + this.isAbbreviation = function () { + return _this.type.indexOf(_constants2.default.TYPE_ABBREVIATION) !== -1; + }; + + this.isEntity = function () { + return _this.type.indexOf(_constants2.default.TYPE_ENTITY) !== -1; + }; + + this.isDescription = function () { + return _this.type.indexOf(_constants2.default.TYPE_DESCRIPTION) !== -1; + }; + + this.isHuman = function () { + return _this.type.indexOf(_constants2.default.TYPE_HUMAN) !== -1; + }; + + this.isLocation = function () { + return _this.type.indexOf(_constants2.default.TYPE_LOCATION) !== -1; + }; + + this.isNumber = function () { + return _this.type.indexOf(_constants2.default.TYPE_NUMBER) !== -1; + }; + + this.isVPositive = function () { + return _this.sentiment === _constants2.default.SENTIMENT_VERY_POSITIVE; + }; + + this.isPositive = function () { + return _this.sentiment === _constants2.default.SENTIMENT_POSITIVE; + }; + + this.isNeutral = function () { + return _this.sentiment === _constants2.default.SENTIMENT_NEUTRAL; + }; + + this.isNegative = function () { + return _this.sentiment === _constants2.default.SENTIMENT_NEGATIVE; + }; + + this.isVNegative = function () { + return _this.sentiment === _constants2.default.SENTIMENT_VERY_NEGATIVE; + }; + + for (var key in response) { + this[key] = response[key]; + } + + this.raw = response; +} + +/** + * Returns the first Entity whose name matches the parameter + * @param {String} name: the entity's name + * @returns {Entity}: returns the first entity that matches - name - + */ + + +/** + * Returns all the entities whose name matches the parameter + * @param {String} name: the entity's name + * @returns {Array}: returns an array of Entity + */ + + +/** + * Returns the first Intent if there is one + * @returns {Intent}: thie first Intent or null + */ + + +/** + * ACT HELPERS + * Returns whether or not the response act corresponds to the checked one + * @returns {boolean}: true or false + */ + + +/** + * TYPE HELPERS + * Returns whether or not the response type corresponds to the checked one + * @returns {boolean}: true or false + */ + + +/** + * SENTIMENT HELPERS + * Returns whether or not the response sentiment corresponds to the checked one + * @returns {boolean}: true or false + */ +; + +exports.default = Response; \ No newline at end of file diff --git a/lib/apis/resources/sapcaiError.js b/lib/apis/resources/sapcaiError.js new file mode 100644 index 0000000..f60180e --- /dev/null +++ b/lib/apis/resources/sapcaiError.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of"); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = require("babel-runtime/helpers/inherits"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SapcaiError = function (_Error) { + (0, _inherits3.default)(SapcaiError, _Error); + + function SapcaiError(message) { + (0, _classCallCheck3.default)(this, SapcaiError); + return (0, _possibleConstructorReturn3.default)(this, (SapcaiError.__proto__ || (0, _getPrototypeOf2.default)(SapcaiError)).call(this, message)); + } + + return SapcaiError; +}(Error); + +exports.default = SapcaiError; \ No newline at end of file diff --git a/lib/apis/train/bots.js b/lib/apis/train/bots.js new file mode 100644 index 0000000..9c1abff --- /dev/null +++ b/lib/apis/train/bots.js @@ -0,0 +1,71 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require("babel-runtime/regenerator"); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Bots = function Bots(client) { + var _this = this; + + (0, _classCallCheck3.default)(this, Bots); + + this.get = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params, opts) { + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug, params, opts)); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; + }(); + + this.update = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(data, opts) { + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", _this.client.put("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug, data, opts)); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3, _x4) { + return _ref2.apply(this, arguments); + }; + }(); + + this.client = client; +}; + +exports.default = Bots; \ No newline at end of file diff --git a/lib/apis/train/entities.js b/lib/apis/train/entities.js new file mode 100644 index 0000000..9f8a521 --- /dev/null +++ b/lib/apis/train/entities.js @@ -0,0 +1,92 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require('babel-runtime/regenerator'); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Entities = function Entities(client) { + var _this = this; + + (0, _classCallCheck3.default)(this, Entities); + + this.list = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params, opts) { + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt('return', _this.client.get('/users/' + _this.client.userSlug + '/bots/' + _this.client.botSlug + '/versions/' + _this.client.botVersion + '/dataset/entities', params, opts)); + + case 1: + case 'end': + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; + }(); + + this.listPublic = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(params, opts) { + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt('return', _this.client.get('/entities', params, opts)); + + case 1: + case 'end': + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3, _x4) { + return _ref2.apply(this, arguments); + }; + }(); + + this.create = function () { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(data, opts) { + return _regenerator2.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt('return', _this.client.post('/entities', data, opts)); + + case 1: + case 'end': + return _context3.stop(); + } + } + }, _callee3, _this); + })); + + return function (_x5, _x6) { + return _ref3.apply(this, arguments); + }; + }(); + + this.client = client; +}; + +exports.default = Entities; \ No newline at end of file diff --git a/lib/apis/train/gazettes.js b/lib/apis/train/gazettes.js new file mode 100644 index 0000000..2bdf7c5 --- /dev/null +++ b/lib/apis/train/gazettes.js @@ -0,0 +1,260 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require("babel-runtime/regenerator"); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Gazettes = function Gazettes(client) { + var _this = this; + + (0, _classCallCheck3.default)(this, Gazettes); + + this.list = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params, opts) { + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes", params, opts)); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; + }(); + + this.getBySlug = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(slug, params, opts) { + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + slug, params, opts)); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3, _x4, _x5) { + return _ref2.apply(this, arguments); + }; + }(); + + this.deleteBySlug = function () { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(slug, params, opts) { + return _regenerator2.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt("return", _this.client.del("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + slug, params, opts)); + + case 1: + case "end": + return _context3.stop(); + } + } + }, _callee3, _this); + })); + + return function (_x6, _x7, _x8) { + return _ref3.apply(this, arguments); + }; + }(); + + this.create = function () { + var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(data, opts) { + return _regenerator2.default.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + return _context4.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes", data, opts)); + + case 1: + case "end": + return _context4.stop(); + } + } + }, _callee4, _this); + })); + + return function (_x9, _x10) { + return _ref4.apply(this, arguments); + }; + }(); + + this.update = function () { + var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(data, opts) { + return _regenerator2.default.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + return _context5.abrupt("return", _this.client.put("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes", data, opts)); + + case 1: + case "end": + return _context5.stop(); + } + } + }, _callee5, _this); + })); + + return function (_x11, _x12) { + return _ref5.apply(this, arguments); + }; + }(); + + this.listSynonyms = function () { + var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(slug, params, opts) { + return _regenerator2.default.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + return _context6.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + slug + "/synonyms", params, opts)); + + case 1: + case "end": + return _context6.stop(); + } + } + }, _callee6, _this); + })); + + return function (_x13, _x14, _x15) { + return _ref6.apply(this, arguments); + }; + }(); + + this.getSynonymBySlug = function () { + var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(gazetteSlug, synonymSlug, params, opts) { + return _regenerator2.default.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + return _context7.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + gazetteSlug + "/synonyms/" + synonymSlug, params, opts)); + + case 1: + case "end": + return _context7.stop(); + } + } + }, _callee7, _this); + })); + + return function (_x16, _x17, _x18, _x19) { + return _ref7.apply(this, arguments); + }; + }(); + + this.createOneSynonym = function () { + var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(slug, data, opts) { + return _regenerator2.default.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + return _context8.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + slug + "/synonyms", data, opts)); + + case 1: + case "end": + return _context8.stop(); + } + } + }, _callee8, _this); + })); + + return function (_x20, _x21, _x22) { + return _ref8.apply(this, arguments); + }; + }(); + + this.createBulkSynonyms = function () { + var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(slug, data, opts) { + return _regenerator2.default.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + return _context9.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + slug + "/synonyms/bulk_create", data, opts)); + + case 1: + case "end": + return _context9.stop(); + } + } + }, _callee9, _this); + })); + + return function (_x23, _x24, _x25) { + return _ref9.apply(this, arguments); + }; + }(); + + this.updateSynonymBySlug = function () { + var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(gazetteSlug, synonymSlug, data, opts) { + return _regenerator2.default.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + return _context10.abrupt("return", _this.client.put("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + gazetteSlug + "/synonyms/" + synonymSlug, data, opts)); + + case 1: + case "end": + return _context10.stop(); + } + } + }, _callee10, _this); + })); + + return function (_x26, _x27, _x28, _x29) { + return _ref10.apply(this, arguments); + }; + }(); + + this.deleteSynonymBySlug = function () { + var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(gazetteSlug, synonymSlug, params, opts) { + return _regenerator2.default.wrap(function _callee11$(_context11) { + while (1) { + switch (_context11.prev = _context11.next) { + case 0: + return _context11.abrupt("return", _this.client.del("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/gazettes/" + gazetteSlug + "/synonyms/" + synonymSlug, params, opts)); + + case 1: + case "end": + return _context11.stop(); + } + } + }, _callee11, _this); + })); + + return function (_x30, _x31, _x32, _x33) { + return _ref11.apply(this, arguments); + }; + }(); + + this.client = client; +}; + +exports.default = Gazettes; \ No newline at end of file diff --git a/lib/apis/train/index.js b/lib/apis/train/index.js new file mode 100644 index 0000000..5533cba --- /dev/null +++ b/lib/apis/train/index.js @@ -0,0 +1,255 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require('babel-runtime/regenerator'); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _promise = require('babel-runtime/core-js/promise'); + +var _promise2 = _interopRequireDefault(_promise); + +var _superagent = require('superagent'); + +var _superagent2 = _interopRequireDefault(_superagent); + +var _superagentProxy = require('superagent-proxy'); + +var _superagentProxy2 = _interopRequireDefault(_superagentProxy); + +var _superagentPromise = require('superagent-promise'); + +var _superagentPromise2 = _interopRequireDefault(_superagentPromise); + +var _constants = require('../constants'); + +var _constants2 = _interopRequireDefault(_constants); + +var _resources = require('../resources'); + +var _bots = require('./bots'); + +var _bots2 = _interopRequireDefault(_bots); + +var _entities = require('./entities'); + +var _entities2 = _interopRequireDefault(_entities); + +var _gazettes = require('./gazettes'); + +var _gazettes2 = _interopRequireDefault(_gazettes); + +var _intents = require('./intents'); + +var _intents2 = _interopRequireDefault(_intents); + +var _logs = require('./logs'); + +var _logs2 = _interopRequireDefault(_logs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var agent = (0, _superagentPromise2.default)((0, _superagentProxy2.default)(_superagent2.default), _promise2.default); + +var Train = function Train(token, language, version, userSlug, botSlug) { + (0, _classCallCheck3.default)(this, Train); + + _initialiseProps.call(this); + + if (typeof userSlug !== 'string' || typeof botSlug !== 'string') { + throw new _resources.SapcaiError('Train client must be initiated with a user slug and a bot slug'); + } + + this.token = token; + this.language = language; + this.userSlug = userSlug; + this.botSlug = botSlug; + this.botVersion = version; + + this.bots = new _bots2.default(this); + this.entities = new _entities2.default(this); + this.gazettes = new _gazettes2.default(this); + this.intents = new _intents2.default(this); + this.logs = new _logs2.default(this); +}; + +var _initialiseProps = function _initialiseProps() { + var _this = this; + + this.get = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(url) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var token, proxy, request; + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + token = options.token || _this.token; + proxy = options.proxy; + + if (token) { + _context.next = 4; + break; + } + + throw new _resources.SapcaiError('Parameter token is missing'); + + case 4: + request = agent.get('' + _constants2.default.TRAIN_ENDPOINT + url).query(params).set('Authorization', 'Token ' + token); + + if (proxy) { + request.proxy(proxy); + } + + return _context.abrupt('return', request.send()); + + case 7: + case 'end': + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x) { + return _ref.apply(this, arguments); + }; + }(); + + this.del = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(url) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var token, proxy, request; + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + token = options.token || _this.token; + proxy = options.proxy; + + if (token) { + _context2.next = 4; + break; + } + + throw new _resources.SapcaiError('Parameter token is missing'); + + case 4: + request = agent.del('' + _constants2.default.TRAIN_ENDPOINT + url).query(params).set('Authorization', 'Token ' + token); + + if (proxy) { + request.proxy(proxy); + } + + return _context2.abrupt('return', request.send()); + + case 7: + case 'end': + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x4) { + return _ref2.apply(this, arguments); + }; + }(); + + this.post = function () { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(url) { + var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var token, proxy, request; + return _regenerator2.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + token = options.token || _this.token; + proxy = options.proxy; + + if (token) { + _context3.next = 4; + break; + } + + throw new _resources.SapcaiError('Parameter token is missing'); + + case 4: + request = agent.post('' + _constants2.default.TRAIN_ENDPOINT + url).send(body).set('Authorization', 'Token ' + token); + + if (proxy) { + request.proxy(proxy); + } + + return _context3.abrupt('return', request.send(body)); + + case 7: + case 'end': + return _context3.stop(); + } + } + }, _callee3, _this); + })); + + return function (_x7) { + return _ref3.apply(this, arguments); + }; + }(); + + this.put = function () { + var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(url) { + var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var token, proxy, request; + return _regenerator2.default.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + token = options.token || _this.token; + proxy = options.proxy; + + if (token) { + _context4.next = 4; + break; + } + + throw new _resources.SapcaiError('Parameter token is missing'); + + case 4: + request = agent.put('' + _constants2.default.TRAIN_ENDPOINT + url).send(body).set('Authorization', 'Token ' + token); + + if (proxy) { + request.proxy(proxy); + } + + return _context4.abrupt('return', request.send(body)); + + case 7: + case 'end': + return _context4.stop(); + } + } + }, _callee4, _this); + })); + + return function (_x10) { + return _ref4.apply(this, arguments); + }; + }(); +}; + +exports.default = Train; \ No newline at end of file diff --git a/lib/apis/train/intents.js b/lib/apis/train/intents.js new file mode 100644 index 0000000..1e4a173 --- /dev/null +++ b/lib/apis/train/intents.js @@ -0,0 +1,281 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require("babel-runtime/regenerator"); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Intents = function Intents(client) { + var _this = this; + + (0, _classCallCheck3.default)(this, Intents); + + this.list = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params, opts) { + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents", params, opts)); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; + }(); + + this.getBySlug = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(slug, params, opts) { + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug, params, opts)); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3, _x4, _x5) { + return _ref2.apply(this, arguments); + }; + }(); + + this.deleteBySlug = function () { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(slug, params, opts) { + return _regenerator2.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt("return", _this.client.del("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug, params, opts)); + + case 1: + case "end": + return _context3.stop(); + } + } + }, _callee3, _this); + })); + + return function (_x6, _x7, _x8) { + return _ref3.apply(this, arguments); + }; + }(); + + this.getEntities = function () { + var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(slug, params, opts) { + return _regenerator2.default.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + return _context4.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/entities", params, opts)); + + case 1: + case "end": + return _context4.stop(); + } + } + }, _callee4, _this); + })); + + return function (_x9, _x10, _x11) { + return _ref4.apply(this, arguments); + }; + }(); + + this.getExpressions = function () { + var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(slug, params, opts) { + return _regenerator2.default.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + return _context5.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/expressions", params, opts)); + + case 1: + case "end": + return _context5.stop(); + } + } + }, _callee5, _this); + })); + + return function (_x12, _x13, _x14) { + return _ref5.apply(this, arguments); + }; + }(); + + this.getExpressionById = function () { + var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(slug, id, params, opts) { + return _regenerator2.default.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + return _context6.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/expressions/" + id, params, opts)); + + case 1: + case "end": + return _context6.stop(); + } + } + }, _callee6, _this); + })); + + return function (_x15, _x16, _x17, _x18) { + return _ref6.apply(this, arguments); + }; + }(); + + this.deleteExpressionById = function () { + var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(slug, id, params, opts) { + return _regenerator2.default.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + return _context7.abrupt("return", _this.client.del("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/expressions/" + id, params, opts)); + + case 1: + case "end": + return _context7.stop(); + } + } + }, _callee7, _this); + })); + + return function (_x19, _x20, _x21, _x22) { + return _ref7.apply(this, arguments); + }; + }(); + + this.createOneExpression = function () { + var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(slug, data, opts) { + return _regenerator2.default.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + return _context8.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/expressions", data, opts)); + + case 1: + case "end": + return _context8.stop(); + } + } + }, _callee8, _this); + })); + + return function (_x23, _x24, _x25) { + return _ref8.apply(this, arguments); + }; + }(); + + this.createBulkExpressions = function () { + var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(slug, data, opts) { + return _regenerator2.default.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + return _context9.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/expressions/bulk_create", data, opts)); + + case 1: + case "end": + return _context9.stop(); + } + } + }, _callee9, _this); + })); + + return function (_x26, _x27, _x28) { + return _ref9.apply(this, arguments); + }; + }(); + + this.updateExpressionById = function () { + var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(slug, id, data, opts) { + return _regenerator2.default.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + return _context10.abrupt("return", _this.client.put("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents/" + slug + "/expressions/" + id, data, opts)); + + case 1: + case "end": + return _context10.stop(); + } + } + }, _callee10, _this); + })); + + return function (_x29, _x30, _x31, _x32) { + return _ref10.apply(this, arguments); + }; + }(); + + this.create = function () { + var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(data, opts) { + return _regenerator2.default.wrap(function _callee11$(_context11) { + while (1) { + switch (_context11.prev = _context11.next) { + case 0: + return _context11.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents", data, opts)); + + case 1: + case "end": + return _context11.stop(); + } + } + }, _callee11, _this); + })); + + return function (_x33, _x34) { + return _ref11.apply(this, arguments); + }; + }(); + + this.update = function () { + var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(data, opts) { + return _regenerator2.default.wrap(function _callee12$(_context12) { + while (1) { + switch (_context12.prev = _context12.next) { + case 0: + return _context12.abrupt("return", _this.client.put("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/intents", data, opts)); + + case 1: + case "end": + return _context12.stop(); + } + } + }, _callee12, _this); + })); + + return function (_x35, _x36) { + return _ref12.apply(this, arguments); + }; + }(); + + this.client = client; +}; + +exports.default = Intents; \ No newline at end of file diff --git a/lib/apis/train/logs.js b/lib/apis/train/logs.js new file mode 100644 index 0000000..ab80a9f --- /dev/null +++ b/lib/apis/train/logs.js @@ -0,0 +1,134 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _regenerator = require("babel-runtime/regenerator"); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Logs = function Logs(client) { + var _this = this; + + (0, _classCallCheck3.default)(this, Logs); + + this.list = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params, opts) { + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/logs", params, opts)); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee, _this); + })); + + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; + }(); + + this.getById = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(id, params, opts) { + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", _this.client.get("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/logs/" + id, params, opts)); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2, _this); + })); + + return function (_x3, _x4, _x5) { + return _ref2.apply(this, arguments); + }; + }(); + + this.deleteById = function () { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(id, params, opts) { + return _regenerator2.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt("return", _this.client.del("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/logs/" + id, params, opts)); + + case 1: + case "end": + return _context3.stop(); + } + } + }, _callee3, _this); + })); + + return function (_x6, _x7, _x8) { + return _ref3.apply(this, arguments); + }; + }(); + + this.deleteBulk = function () { + var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(data, opts) { + return _regenerator2.default.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + return _context4.abrupt("return", _this.client.post("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/logs/bulk_destroy", data, opts)); + + case 1: + case "end": + return _context4.stop(); + } + } + }, _callee4, _this); + })); + + return function (_x9, _x10) { + return _ref4.apply(this, arguments); + }; + }(); + + this.archiveBulk = function () { + var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(data, opts) { + return _regenerator2.default.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + return _context5.abrupt("return", _this.client.put("/users/" + _this.client.userSlug + "/bots/" + _this.client.botSlug + "/versions/" + _this.client.botVersion + "/dataset/logs/bulk_archive", data, opts)); + + case 1: + case "end": + return _context5.stop(); + } + } + }, _callee5, _this); + })); + + return function (_x11, _x12) { + return _ref5.apply(this, arguments); + }; + }(); + + this.client = client; +}; + +exports.default = Logs; \ No newline at end of file diff --git a/lib/client.js b/lib/client.js new file mode 100644 index 0000000..79961ed --- /dev/null +++ b/lib/client.js @@ -0,0 +1,33 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _apis = require('./apis'); + +var _apis2 = _interopRequireDefault(_apis); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Client = function Client(token, language, version, userSlug, botSlug) { + (0, _classCallCheck3.default)(this, Client); + + this.connect = new _apis2.default.connect(token, language); + this.request = new _apis2.default.request(token, language); + this.build = new _apis2.default.build(token, language); + + if (version && userSlug && botSlug) { + this.train = new _apis2.default.train(token, language, version, userSlug, botSlug); + } +}; + +Client.connect = _apis2.default.connect; +Client.request = _apis2.default.request; +Client.train = _apis2.default.train; +Client.build = _apis2.default.build; +exports.default = Client; \ No newline at end of file diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 0000000..c7ffbcb --- /dev/null +++ b/lib/index.js @@ -0,0 +1,22 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.build = exports.train = exports.connect = exports.request = undefined; + +var _client = require('./client'); + +var _client2 = _interopRequireDefault(_client); + +var _apis = require('./apis'); + +var _apis2 = _interopRequireDefault(_apis); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _client2.default; +var request = exports.request = _apis2.default.request; +var connect = exports.connect = _apis2.default.connect; +var train = exports.train = _apis2.default.train; +var build = exports.build = _apis2.default.build; \ No newline at end of file From c480e136388555a2303200782673bde494d39bb7 Mon Sep 17 00:00:00 2001 From: sofiat Date: Thu, 8 Jul 2021 17:44:59 +0100 Subject: [PATCH 2/3] feat: publish sapcai package --- .nmprc | 1 + package.json | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 .nmprc diff --git a/.nmprc b/.nmprc new file mode 100644 index 0000000..6cfe253 --- /dev/null +++ b/.nmprc @@ -0,0 +1 @@ +@tiesproject:registry=https://npm.pkg.github.com \ No newline at end of file diff --git a/package.json b/package.json index 3bc78bb..b5728d9 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { - "name": "sapcai", - "version": "4.0.0", + "name": "@tiesproject/sapcai", + "version": "1.0.0", "description": "SAP Conversational AI official SDK in NodeJs", "main": "lib/index.js", "types": "index.d.ts", "directories": { - "example": "example" + "lib": "lib" }, "scripts": { "test": "mocha spec/test.js --compilers js:babel-register", @@ -15,7 +15,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/SAPConversationalAI/SDK-NodeJs.git" + "url": "git://github.com:sofiatabioye/SDK-NodeJS.git" }, "keywords": [ "sapcai" From 9c8ac4391edcb5198bf6fa4204d7c7221e511ca1 Mon Sep 17 00:00:00 2001 From: sofiat Date: Thu, 8 Jul 2021 18:22:20 +0100 Subject: [PATCH 3/3] feat: add new version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b5728d9..bdae0bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tiesproject/sapcai", - "version": "1.0.0", + "version": "1.1.0", "description": "SAP Conversational AI official SDK in NodeJs", "main": "lib/index.js", "types": "index.d.ts",