UNPKG

13.6 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
8
9var _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; }; }();
10
11var _querystring = require("querystring");
12
13var _querystring2 = _interopRequireDefault(_querystring);
14
15var _StreamResource = require("./StreamResource");
16
17var _StreamResource2 = _interopRequireDefault(_StreamResource);
18
19var _TalkResource = require("./TalkResource");
20
21var _TalkResource2 = _interopRequireDefault(_TalkResource);
22
23var _DtmfResource = require("./DtmfResource");
24
25var _DtmfResource2 = _interopRequireDefault(_DtmfResource);
26
27function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
29function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
31/**
32 * Provides access to the `calls` resource.
33 */
34var CallsResource = function () {
35 _createClass(CallsResource, null, [{
36 key: "PATH",
37
38 /**
39 * The path to the `calls` resource.
40 */
41 get: function get() {
42 return "/v1/calls";
43 }
44
45 /**
46 * Creates a new CallsResource.
47 *
48 * @param {Credentials} creds - Credentials used when interacting with the Nexmo API.
49 * @param {Object} options - additional options for the class.
50 */
51
52 }]);
53
54 function CallsResource(creds, options) {
55 _classCallCheck(this, CallsResource);
56
57 this.creds = creds;
58 this.options = options;
59
60 /**
61 * @type StreamController
62 */
63 this.stream = new _StreamResource2.default(this.creds, this.options);
64
65 /**
66 * @type TalkResource
67 */
68 this.talk = new _TalkResource2.default(this.creds, this.options);
69
70 /**
71 * @type DtmfResource
72 */
73 this.dtmf = new _DtmfResource2.default(this.creds, this.options);
74 }
75
76 /**
77 * Create a new call.
78 *
79 * @param {Object} params - Parameters used when creating the call. See https://developer.nexmo.com/api/voice#create-an-outbound-call for more information.
80 * @param {function} callback - function to be called when the request completes.
81 */
82
83
84 _createClass(CallsResource, [{
85 key: "create",
86 value: function create(params, callback) {
87 params = JSON.stringify(params);
88
89 var config = {
90 host: "api.nexmo.com",
91 path: CallsResource.PATH,
92 method: "POST",
93 body: params,
94 headers: {
95 "Content-Type": "application/json",
96 "Content-Length": params.length,
97 Authorization: "Bearer " + this.creds.generateJwt()
98 }
99 };
100 this.options.httpClient.request(config, callback);
101 }
102
103 /**
104 * Get an existing call.
105 *
106 * @param {string|object} query - The unique identifier for the call to retrieve
107 * or a set of filter parameters for the query. For more information
108 * see https://docs.nexmo.com/voice/voice-api/api-reference#call_retrieve
109 * @param {function} callback - function to be called when the request completes.
110 */
111
112 }, {
113 key: "get",
114 value: function get(query, callback) {
115 if (!query) {
116 throw new Error('"query" is a required parameter');
117 }
118
119 var pathExt = "";
120 if (typeof query === "string") {
121 // single call Id
122 pathExt = "/" + query;
123 } else if ((typeof query === "undefined" ? "undefined" : _typeof(query)) === "object" && Object.keys(query).length > 0) {
124 // filter
125 pathExt = "?" + _querystring2.default.stringify(query);
126 }
127
128 var config = {
129 host: "api.nexmo.com",
130 path: "" + CallsResource.PATH + pathExt,
131 method: "GET",
132 headers: {
133 "Content-Type": "application/json",
134 Authorization: "Bearer " + this.creds.generateJwt()
135 }
136 };
137 this.options.httpClient.request(config, callback);
138 }
139
140 /**
141 * Update an existing call.
142 *
143 * @param {string} [callId] - The unique identifier for the call to update.
144 * @param {Object} params - Parameters used when updating the call. See https://developer.nexmo.com/api/voice#modify-an-existing-call for more information.
145 * @param {function} callback - function to be called when the request completes.
146 */
147
148 }, {
149 key: "update",
150 value: function update(callId, params, callback) {
151 params = JSON.stringify(params);
152
153 var config = {
154 host: "api.nexmo.com",
155 path: CallsResource.PATH + "/" + callId,
156 method: "PUT",
157 body: params,
158 headers: {
159 "Content-Type": "application/json",
160 "Content-Length": params.length,
161 Authorization: "Bearer " + this.creds.generateJwt()
162 }
163 };
164 this.options.httpClient.request(config, callback);
165 }
166 }]);
167
168 return CallsResource;
169}();
170
171exports.default = CallsResource;
172module.exports = exports["default"];
173//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9DYWxsc1Jlc291cmNlLmpzIl0sIm5hbWVzIjpbIkNhbGxzUmVzb3VyY2UiLCJjcmVkcyIsIm9wdGlvbnMiLCJzdHJlYW0iLCJ0YWxrIiwiZHRtZiIsInBhcmFtcyIsImNhbGxiYWNrIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbmZpZyIsImhvc3QiLCJwYXRoIiwiUEFUSCIsIm1ldGhvZCIsImJvZHkiLCJoZWFkZXJzIiwibGVuZ3RoIiwiQXV0aG9yaXphdGlvbiIsImdlbmVyYXRlSnd0IiwiaHR0cENsaWVudCIsInJlcXVlc3QiLCJxdWVyeSIsIkVycm9yIiwicGF0aEV4dCIsIk9iamVjdCIsImtleXMiLCJjYWxsSWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7QUFFQTs7O0lBR01BLGE7Ozs7QUFDSjs7O3dCQUdrQjtBQUNoQixhQUFPLFdBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O0FBTUEseUJBQVlDLEtBQVosRUFBbUJDLE9BQW5CLEVBQTRCO0FBQUE7O0FBQzFCLFNBQUtELEtBQUwsR0FBYUEsS0FBYjtBQUNBLFNBQUtDLE9BQUwsR0FBZUEsT0FBZjs7QUFFQTs7O0FBR0EsU0FBS0MsTUFBTCxHQUFjLDZCQUFtQixLQUFLRixLQUF4QixFQUErQixLQUFLQyxPQUFwQyxDQUFkOztBQUVBOzs7QUFHQSxTQUFLRSxJQUFMLEdBQVksMkJBQWlCLEtBQUtILEtBQXRCLEVBQTZCLEtBQUtDLE9BQWxDLENBQVo7O0FBRUE7OztBQUdBLFNBQUtHLElBQUwsR0FBWSwyQkFBaUIsS0FBS0osS0FBdEIsRUFBNkIsS0FBS0MsT0FBbEMsQ0FBWjtBQUNEOztBQUVEOzs7Ozs7Ozs7OzJCQU1PSSxNLEVBQVFDLFEsRUFBVTtBQUN2QkQsZUFBU0UsS0FBS0MsU0FBTCxDQUFlSCxNQUFmLENBQVQ7O0FBRUEsVUFBSUksU0FBUztBQUNYQyxjQUFNLGVBREs7QUFFWEMsY0FBTVosY0FBY2EsSUFGVDtBQUdYQyxnQkFBUSxNQUhHO0FBSVhDLGNBQU1ULE1BSks7QUFLWFUsaUJBQVM7QUFDUCwwQkFBZ0Isa0JBRFQ7QUFFUCw0QkFBa0JWLE9BQU9XLE1BRmxCO0FBR1BDLHFDQUF5QixLQUFLakIsS0FBTCxDQUFXa0IsV0FBWDtBQUhsQjtBQUxFLE9BQWI7QUFXQSxXQUFLakIsT0FBTCxDQUFha0IsVUFBYixDQUF3QkMsT0FBeEIsQ0FBZ0NYLE1BQWhDLEVBQXdDSCxRQUF4QztBQUNEOztBQUVEOzs7Ozs7Ozs7Ozt3QkFRSWUsSyxFQUFPZixRLEVBQVU7QUFDbkIsVUFBSSxDQUFDZSxLQUFMLEVBQVk7QUFDVixjQUFNLElBQUlDLEtBQUosQ0FBVSxpQ0FBVixDQUFOO0FBQ0Q7O0FBRUQsVUFBSUMsVUFBVSxFQUFkO0FBQ0EsVUFBSSxPQUFPRixLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCO0FBQ0FFLHdCQUFjRixLQUFkO0FBQ0QsT0FIRCxNQUdPLElBQUksUUFBT0EsS0FBUCx5Q0FBT0EsS0FBUCxPQUFpQixRQUFqQixJQUE2QkcsT0FBT0MsSUFBUCxDQUFZSixLQUFaLEVBQW1CTCxNQUFuQixHQUE0QixDQUE3RCxFQUFnRTtBQUNyRTtBQUNBTyx3QkFBYyxzQkFBWWYsU0FBWixDQUFzQmEsS0FBdEIsQ0FBZDtBQUNEOztBQUVELFVBQUlaLFNBQVM7QUFDWEMsY0FBTSxlQURLO0FBRVhDLG1CQUFTWixjQUFjYSxJQUF2QixHQUE4QlcsT0FGbkI7QUFHWFYsZ0JBQVEsS0FIRztBQUlYRSxpQkFBUztBQUNQLDBCQUFnQixrQkFEVDtBQUVQRSxxQ0FBeUIsS0FBS2pCLEtBQUwsQ0FBV2tCLFdBQVg7QUFGbEI7QUFKRSxPQUFiO0FBU0EsV0FBS2pCLE9BQUwsQ0FBYWtCLFVBQWIsQ0FBd0JDLE9BQXhCLENBQWdDWCxNQUFoQyxFQUF3Q0gsUUFBeEM7QUFDRDs7QUFFRDs7Ozs7Ozs7OzsyQkFPT29CLE0sRUFBUXJCLE0sRUFBUUMsUSxFQUFVO0FBQy9CRCxlQUFTRSxLQUFLQyxTQUFMLENBQWVILE1BQWYsQ0FBVDs7QUFFQSxVQUFJSSxTQUFTO0FBQ1hDLGNBQU0sZUFESztBQUVYQyxjQUFTWixjQUFjYSxJQUF2QixTQUErQmMsTUFGcEI7QUFHWGIsZ0JBQVEsS0FIRztBQUlYQyxjQUFNVCxNQUpLO0FBS1hVLGlCQUFTO0FBQ1AsMEJBQWdCLGtCQURUO0FBRVAsNEJBQWtCVixPQUFPVyxNQUZsQjtBQUdQQyxxQ0FBeUIsS0FBS2pCLEtBQUwsQ0FBV2tCLFdBQVg7QUFIbEI7QUFMRSxPQUFiO0FBV0EsV0FBS2pCLE9BQUwsQ0FBYWtCLFVBQWIsQ0FBd0JDLE9BQXhCLENBQWdDWCxNQUFoQyxFQUF3Q0gsUUFBeEM7QUFDRDs7Ozs7O2tCQUdZUCxhIiwiZmlsZSI6IkNhbGxzUmVzb3VyY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlzdHJpbmcgZnJvbSBcInF1ZXJ5c3RyaW5nXCI7XG5cbmltcG9ydCBTdHJlYW1SZXNvdXJjZSBmcm9tIFwiLi9TdHJlYW1SZXNvdXJjZVwiO1xuaW1wb3J0IFRhbGtSZXNvdXJjZSBmcm9tIFwiLi9UYWxrUmVzb3VyY2VcIjtcbmltcG9ydCBEdG1mUmVzb3VyY2UgZnJvbSBcIi4vRHRtZlJlc291cmNlXCI7XG5cbi8qKlxuICogUHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBgY2FsbHNgIHJlc291cmNlLlxuICovXG5jbGFzcyBDYWxsc1Jlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBgY2FsbHNgIHJlc291cmNlLlxuICAgKi9cbiAgc3RhdGljIGdldCBQQVRIKCkge1xuICAgIHJldHVybiBcIi92MS9jYWxsc1wiO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ2FsbHNSZXNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIHtDcmVkZW50aWFsc30gY3JlZHMgLSBDcmVkZW50aWFscyB1c2VkIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgTmV4bW8gQVBJLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIGNsYXNzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoY3JlZHMsIG9wdGlvbnMpIHtcbiAgICB0aGlzLmNyZWRzID0gY3JlZHM7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIFN0cmVhbUNvbnRyb2xsZXJcbiAgICAgKi9cbiAgICB0aGlzLnN0cmVhbSA9IG5ldyBTdHJlYW1SZXNvdXJjZSh0aGlzLmNyZWRzLCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgLyoqXG4gICAgICogQHR5cGUgVGFsa1Jlc291cmNlXG4gICAgICovXG4gICAgdGhpcy50YWxrID0gbmV3IFRhbGtSZXNvdXJjZSh0aGlzLmNyZWRzLCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgLyoqXG4gICAgICogQHR5cGUgRHRtZlJlc291cmNlXG4gICAgICovXG4gICAgdGhpcy5kdG1mID0gbmV3IER0bWZSZXNvdXJjZSh0aGlzLmNyZWRzLCB0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBjYWxsLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gUGFyYW1ldGVycyB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIGNhbGwuIFNlZSBodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vYXBpL3ZvaWNlI2NyZWF0ZS1hbi1vdXRib3VuZC1jYWxsIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIGNyZWF0ZShwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgcGFyYW1zID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIHZhciBjb25maWcgPSB7XG4gICAgICBob3N0OiBcImFwaS5uZXhtby5jb21cIixcbiAgICAgIHBhdGg6IENhbGxzUmVzb3VyY2UuUEFUSCxcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICBcIkNvbnRlbnQtTGVuZ3RoXCI6IHBhcmFtcy5sZW5ndGgsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmNyZWRzLmdlbmVyYXRlSnd0KCl9YFxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5vcHRpb25zLmh0dHBDbGllbnQucmVxdWVzdChjb25maWcsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gZXhpc3RpbmcgY2FsbC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fSBxdWVyeSAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNhbGwgdG8gcmV0cmlldmVcbiAgICogICAgICAgICAgICAgICBvciBhIHNldCBvZiBmaWx0ZXIgcGFyYW1ldGVycyBmb3IgdGhlIHF1ZXJ5LiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiAgICAgICAgICAgICAgIHNlZSBodHRwczovL2RvY3MubmV4bW8uY29tL3ZvaWNlL3ZvaWNlLWFwaS9hcGktcmVmZXJlbmNlI2NhbGxfcmV0cmlldmVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVzdCBjb21wbGV0ZXMuXG4gICAqL1xuICBnZXQocXVlcnksIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcInF1ZXJ5XCIgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXInKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aEV4dCA9IFwiXCI7XG4gICAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgLy8gc2luZ2xlIGNhbGwgSWRcbiAgICAgIHBhdGhFeHQgPSBgLyR7cXVlcnl9YDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBxdWVyeSA9PT0gXCJvYmplY3RcIiAmJiBPYmplY3Qua2V5cyhxdWVyeSkubGVuZ3RoID4gMCkge1xuICAgICAgLy8gZmlsdGVyXG4gICAgICBwYXRoRXh0ID0gYD8ke3F1ZXJ5c3RyaW5nLnN0cmluZ2lmeShxdWVyeSl9YDtcbiAgICB9XG5cbiAgICB2YXIgY29uZmlnID0ge1xuICAgICAgaG9zdDogXCJhcGkubmV4bW8uY29tXCIsXG4gICAgICBwYXRoOiBgJHtDYWxsc1Jlc291cmNlLlBBVEh9JHtwYXRoRXh0fWAsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5jcmVkcy5nZW5lcmF0ZUp3dCgpfWBcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIGNhbGwuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY2FsbElkXSAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNhbGwgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gUGFyYW1ldGVycyB1c2VkIHdoZW4gdXBkYXRpbmcgdGhlIGNhbGwuIFNlZSBodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vYXBpL3ZvaWNlI21vZGlmeS1hbi1leGlzdGluZy1jYWxsIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIHVwZGF0ZShjYWxsSWQsIHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICBwYXJhbXMgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgIGhvc3Q6IFwiYXBpLm5leG1vLmNvbVwiLFxuICAgICAgcGF0aDogYCR7Q2FsbHNSZXNvdXJjZS5QQVRIfS8ke2NhbGxJZH1gLFxuICAgICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgXCJDb250ZW50LUxlbmd0aFwiOiBwYXJhbXMubGVuZ3RoLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5jcmVkcy5nZW5lcmF0ZUp3dCgpfWBcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2FsbHNSZXNvdXJjZTtcbiJdfQ==
\No newline at end of file