UNPKG

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