UNPKG

12.1 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
9var _index = require("./index");
10
11var _index2 = _interopRequireDefault(_index);
12
13var _Members = require("./Members");
14
15var _Members2 = _interopRequireDefault(_Members);
16
17function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
21/**
22 * Provides access to the `conversations` endpoint.
23 */
24var Conversations = function () {
25 _createClass(Conversations, null, [{
26 key: "PATH",
27 get: function get() {
28 return "/beta/conversations";
29 }
30
31 /**
32 * @param {Credentials} credentials
33 * credentials to be used when interacting with the API.
34 * @param {Object} options
35 * Additional Conversations options.
36 */
37
38 }]);
39
40 function Conversations(credentials) {
41 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
43 _classCallCheck(this, Conversations);
44
45 this.creds = credentials;
46 this.options = options;
47
48 /**
49 * @type Members
50 */
51 this.members = new _Members2.default(this.creds, this.options);
52
53 // Used to facilitate testing of the call to the underlying object
54 this._nexmo = this.options.nexmoOverride || _index2.default;
55 }
56
57 /**
58 * Create a new conversation.
59 *
60 * @param {Object} params - Parameters used when creating the conversation. See https://ea.developer.nexmo.com/api/conversation#create-a-conversation for more information.
61 * @param {function} callback - function to be called when the request completes.
62 */
63
64
65 _createClass(Conversations, [{
66 key: "create",
67 value: function create(params, callback) {
68 params = JSON.stringify(params);
69
70 var config = {
71 host: "api.nexmo.com",
72 path: Conversations.PATH,
73 method: "POST",
74 body: params,
75 headers: {
76 "Content-Type": "application/json",
77 Authorization: "Bearer " + this.creds.generateJwt()
78 }
79 };
80 this.options.httpClient.request(config, callback);
81 }
82
83 /**
84 * Get an existing conversation.
85 *
86 * @param {string|object} query - The unique identifier for the conversation to retrieve
87 * or a set of filter parameters for the query. For more information
88 * see https://ea.developer.nexmo.com/api/conversation#retrieve-a-conversation
89 * @param {function} callback - function to be called when the request completes.
90 */
91
92 }, {
93 key: "get",
94 value: function get(query, callback) {
95 this._nexmo.getWithQuery(Conversations.PATH, query, this.creds, this.options, callback);
96 }
97
98 /**
99 * Update an existing conversation.
100 *
101 * @param {string} [conversationId] - The unique identifier for the conversation to update.
102 * @param {Object} params - Parameters used when updating the conversation.
103 * @param {function} callback - function to be called when the request completes.
104 */
105
106 }, {
107 key: "update",
108 value: function update(conversationId, params, callback) {
109 params = JSON.stringify(params);
110
111 var config = {
112 host: "api.nexmo.com",
113 path: Conversations.PATH + "/" + conversationId,
114 method: "PUT",
115 body: params,
116 headers: {
117 "Content-Type": "application/json",
118 Authorization: "Bearer " + this.creds.generateJwt()
119 }
120 };
121
122 this.options.httpClient.request(config, callback);
123 }
124
125 /**
126 * Deleta an existing conversation.
127 *
128 * @param {string} [conversationId] - The unique identifier for the conversation to delete.
129 * @param {function} callback - function to be called when the request completes.
130 */
131
132 }, {
133 key: "delete",
134 value: function _delete(conversationId, callback) {
135 var config = {
136 host: "api.nexmo.com",
137 path: Conversations.PATH + "/" + conversationId,
138 method: "DELETE",
139 headers: {
140 "Content-Type": "application/json",
141 Authorization: "Bearer " + this.creds.generateJwt()
142 }
143 };
144
145 this.options.httpClient.request(config, callback);
146 }
147 }]);
148
149 return Conversations;
150}();
151
152exports.default = Conversations;
153module.exports = exports["default"];
154//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db252ZXJzYXRpb25zLmpzIl0sIm5hbWVzIjpbIkNvbnZlcnNhdGlvbnMiLCJjcmVkZW50aWFscyIsIm9wdGlvbnMiLCJjcmVkcyIsIm1lbWJlcnMiLCJfbmV4bW8iLCJuZXhtb092ZXJyaWRlIiwicGFyYW1zIiwiY2FsbGJhY2siLCJKU09OIiwic3RyaW5naWZ5IiwiY29uZmlnIiwiaG9zdCIsInBhdGgiLCJQQVRIIiwibWV0aG9kIiwiYm9keSIsImhlYWRlcnMiLCJBdXRob3JpemF0aW9uIiwiZ2VuZXJhdGVKd3QiLCJodHRwQ2xpZW50IiwicmVxdWVzdCIsInF1ZXJ5IiwiZ2V0V2l0aFF1ZXJ5IiwiY29udmVyc2F0aW9uSWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztBQUVBOzs7O0FBRUE7Ozs7Ozs7O0FBRUE7OztJQUdNQSxhOzs7d0JBQ2M7QUFDaEIsYUFBTyxxQkFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7QUFNQSx5QkFBWUMsV0FBWixFQUF1QztBQUFBLFFBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFBQTs7QUFDckMsU0FBS0MsS0FBTCxHQUFhRixXQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQSxPQUFmOztBQUVBOzs7QUFHQSxTQUFLRSxPQUFMLEdBQWUsc0JBQVksS0FBS0QsS0FBakIsRUFBd0IsS0FBS0QsT0FBN0IsQ0FBZjs7QUFFQTtBQUNBLFNBQUtHLE1BQUwsR0FBYyxLQUFLSCxPQUFMLENBQWFJLGFBQWIsbUJBQWQ7QUFDRDs7QUFFRDs7Ozs7Ozs7OzsyQkFNT0MsTSxFQUFRQyxRLEVBQVU7QUFDdkJELGVBQVNFLEtBQUtDLFNBQUwsQ0FBZUgsTUFBZixDQUFUOztBQUVBLFVBQUlJLFNBQVM7QUFDWEMsY0FBTSxlQURLO0FBRVhDLGNBQU1iLGNBQWNjLElBRlQ7QUFHWEMsZ0JBQVEsTUFIRztBQUlYQyxjQUFNVCxNQUpLO0FBS1hVLGlCQUFTO0FBQ1AsMEJBQWdCLGtCQURUO0FBRVBDLHFDQUF5QixLQUFLZixLQUFMLENBQVdnQixXQUFYO0FBRmxCO0FBTEUsT0FBYjtBQVVBLFdBQUtqQixPQUFMLENBQWFrQixVQUFiLENBQXdCQyxPQUF4QixDQUFnQ1YsTUFBaEMsRUFBd0NILFFBQXhDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7O3dCQVFJYyxLLEVBQU9kLFEsRUFBVTtBQUNuQixXQUFLSCxNQUFMLENBQVlrQixZQUFaLENBQ0V2QixjQUFjYyxJQURoQixFQUVFUSxLQUZGLEVBR0UsS0FBS25CLEtBSFAsRUFJRSxLQUFLRCxPQUpQLEVBS0VNLFFBTEY7QUFPRDs7QUFFRDs7Ozs7Ozs7OzsyQkFPT2dCLGMsRUFBZ0JqQixNLEVBQVFDLFEsRUFBVTtBQUN2Q0QsZUFBU0UsS0FBS0MsU0FBTCxDQUFlSCxNQUFmLENBQVQ7O0FBRUEsVUFBSUksU0FBUztBQUNYQyxjQUFNLGVBREs7QUFFWEMsY0FBU2IsY0FBY2MsSUFBdkIsU0FBK0JVLGNBRnBCO0FBR1hULGdCQUFRLEtBSEc7QUFJWEMsY0FBTVQsTUFKSztBQUtYVSxpQkFBUztBQUNQLDBCQUFnQixrQkFEVDtBQUVQQyxxQ0FBeUIsS0FBS2YsS0FBTCxDQUFXZ0IsV0FBWDtBQUZsQjtBQUxFLE9BQWI7O0FBV0EsV0FBS2pCLE9BQUwsQ0FBYWtCLFVBQWIsQ0FBd0JDLE9BQXhCLENBQWdDVixNQUFoQyxFQUF3Q0gsUUFBeEM7QUFDRDs7QUFFRDs7Ozs7Ozs7OzRCQU1PZ0IsYyxFQUFnQmhCLFEsRUFBVTtBQUMvQixVQUFJRyxTQUFTO0FBQ1hDLGNBQU0sZUFESztBQUVYQyxjQUFTYixjQUFjYyxJQUF2QixTQUErQlUsY0FGcEI7QUFHWFQsZ0JBQVEsUUFIRztBQUlYRSxpQkFBUztBQUNQLDBCQUFnQixrQkFEVDtBQUVQQyxxQ0FBeUIsS0FBS2YsS0FBTCxDQUFXZ0IsV0FBWDtBQUZsQjtBQUpFLE9BQWI7O0FBVUEsV0FBS2pCLE9BQUwsQ0FBYWtCLFVBQWIsQ0FBd0JDLE9BQXhCLENBQWdDVixNQUFoQyxFQUF3Q0gsUUFBeEM7QUFDRDs7Ozs7O2tCQUdZUixhIiwiZmlsZSI6IkNvbnZlcnNhdGlvbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG5leG1vIGZyb20gXCIuL2luZGV4XCI7XG5cbmltcG9ydCBNZW1iZXJzIGZyb20gXCIuL01lbWJlcnNcIjtcblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGBjb252ZXJzYXRpb25zYCBlbmRwb2ludC5cbiAqL1xuY2xhc3MgQ29udmVyc2F0aW9ucyB7XG4gIHN0YXRpYyBnZXQgUEFUSCgpIHtcbiAgICByZXR1cm4gXCIvYmV0YS9jb252ZXJzYXRpb25zXCI7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtDcmVkZW50aWFsc30gY3JlZGVudGlhbHNcbiAgICogICAgY3JlZGVudGlhbHMgdG8gYmUgdXNlZCB3aGVuIGludGVyYWN0aW5nIHdpdGggdGhlIEFQSS5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogICAgQWRkaXRpb25hbCBDb252ZXJzYXRpb25zIG9wdGlvbnMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjcmVkZW50aWFscywgb3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5jcmVkcyA9IGNyZWRlbnRpYWxzO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSBNZW1iZXJzXG4gICAgICovXG4gICAgdGhpcy5tZW1iZXJzID0gbmV3IE1lbWJlcnModGhpcy5jcmVkcywgdGhpcy5vcHRpb25zKTtcblxuICAgIC8vIFVzZWQgdG8gZmFjaWxpdGF0ZSB0ZXN0aW5nIG9mIHRoZSBjYWxsIHRvIHRoZSB1bmRlcmx5aW5nIG9iamVjdFxuICAgIHRoaXMuX25leG1vID0gdGhpcy5vcHRpb25zLm5leG1vT3ZlcnJpZGUgfHwgbmV4bW87XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNvbnZlcnNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFBhcmFtZXRlcnMgdXNlZCB3aGVuIGNyZWF0aW5nIHRoZSBjb252ZXJzYXRpb24uIFNlZSBodHRwczovL2VhLmRldmVsb3Blci5uZXhtby5jb20vYXBpL2NvbnZlcnNhdGlvbiNjcmVhdGUtYS1jb252ZXJzYXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlcXVlc3QgY29tcGxldGVzLlxuICAgKi9cbiAgY3JlYXRlKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICBwYXJhbXMgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgIGhvc3Q6IFwiYXBpLm5leG1vLmNvbVwiLFxuICAgICAgcGF0aDogQ29udmVyc2F0aW9ucy5QQVRILFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmNyZWRzLmdlbmVyYXRlSnd0KCl9YFxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5vcHRpb25zLmh0dHBDbGllbnQucmVxdWVzdChjb25maWcsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gZXhpc3RpbmcgY29udmVyc2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHF1ZXJ5IC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udmVyc2F0aW9uIHRvIHJldHJpZXZlXG4gICAqICAgICAgICAgICAgICAgb3IgYSBzZXQgb2YgZmlsdGVyIHBhcmFtZXRlcnMgZm9yIHRoZSBxdWVyeS4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICogICAgICAgICAgICAgICBzZWUgaHR0cHM6Ly9lYS5kZXZlbG9wZXIubmV4bW8uY29tL2FwaS9jb252ZXJzYXRpb24jcmV0cmlldmUtYS1jb252ZXJzYXRpb25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVzdCBjb21wbGV0ZXMuXG4gICAqL1xuICBnZXQocXVlcnksIGNhbGxiYWNrKSB7XG4gICAgdGhpcy5fbmV4bW8uZ2V0V2l0aFF1ZXJ5KFxuICAgICAgQ29udmVyc2F0aW9ucy5QQVRILFxuICAgICAgcXVlcnksXG4gICAgICB0aGlzLmNyZWRzLFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBjb252ZXJzYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY29udmVyc2F0aW9uSWRdIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udmVyc2F0aW9uIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFBhcmFtZXRlcnMgdXNlZCB3aGVuIHVwZGF0aW5nIHRoZSBjb252ZXJzYXRpb24uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlcXVlc3QgY29tcGxldGVzLlxuICAgKi9cbiAgdXBkYXRlKGNvbnZlcnNhdGlvbklkLCBwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgcGFyYW1zID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIHZhciBjb25maWcgPSB7XG4gICAgICBob3N0OiBcImFwaS5uZXhtby5jb21cIixcbiAgICAgIHBhdGg6IGAke0NvbnZlcnNhdGlvbnMuUEFUSH0vJHtjb252ZXJzYXRpb25JZH1gLFxuICAgICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuY3JlZHMuZ2VuZXJhdGVKd3QoKX1gXG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRhIGFuIGV4aXN0aW5nIGNvbnZlcnNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjb252ZXJzYXRpb25JZF0gLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjb252ZXJzYXRpb24gdG8gZGVsZXRlLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIGRlbGV0ZShjb252ZXJzYXRpb25JZCwgY2FsbGJhY2spIHtcbiAgICB2YXIgY29uZmlnID0ge1xuICAgICAgaG9zdDogXCJhcGkubmV4bW8uY29tXCIsXG4gICAgICBwYXRoOiBgJHtDb252ZXJzYXRpb25zLlBBVEh9LyR7Y29udmVyc2F0aW9uSWR9YCxcbiAgICAgIG1ldGhvZDogXCJERUxFVEVcIixcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmNyZWRzLmdlbmVyYXRlSnd0KCl9YFxuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLm9wdGlvbnMuaHR0cENsaWVudC5yZXF1ZXN0KGNvbmZpZywgY2FsbGJhY2spO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbnZlcnNhdGlvbnM7XG4iXX0=
\No newline at end of file