UNPKG

7.98 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
9function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10
11var fs = require("fs");
12
13var FilesResource = function () {
14 _createClass(FilesResource, null, [{
15 key: "PATH",
16
17 /**
18 * The path to the `calls` resource.
19 */
20 get: function get() {
21 return "/v1/files";
22 }
23
24 /**
25 * Creates a new FilesResource.
26 *
27 * @param {Credentials} creds - Credentials used when interacting with the Nexmo API.
28 * @param {Object} options - additional options for the class.
29 */
30
31 }]);
32
33 function FilesResource(creds, options) {
34 _classCallCheck(this, FilesResource);
35
36 this.creds = creds;
37 this.options = options;
38 }
39
40 /**
41 * Get stream for a remote File
42 *
43 * @param {string} [fileIdOrUrl] - The unique identifier or URL for the file
44 * @param {function} callback - function to be called when the request completes.
45 */
46
47
48 _createClass(FilesResource, [{
49 key: "get",
50 value: function get(fileIdOrUrl, callback) {
51 if (!fileIdOrUrl) {
52 throw new Error('"fileIdOrUrl" is a required parameter');
53 }
54
55 fileIdOrUrl = fileIdOrUrl.split("/").pop(-1);
56
57 var config = {
58 host: this.options.apiHost || "api.nexmo.com",
59 path: FilesResource.PATH + "/" + fileIdOrUrl,
60 method: "GET",
61 headers: {
62 "Content-Type": "application/octet-stream",
63 Authorization: "Bearer " + this.creds.generateJwt()
64 }
65 };
66
67 this.options.httpClient.request(config, callback);
68 }
69
70 /**
71 * Save remote File locally
72 *
73 * @param {string} [fileIdOrUrl] - The unique identifier or URL for the file
74 * @param {string} [file] - Filename or file descriptor
75 * @param {function} callback - function to be called when the request completes.
76 */
77
78 }, {
79 key: "save",
80 value: function save(fileIdOrUrl, file, callback) {
81 var _this = this;
82
83 this.get(fileIdOrUrl, function (error, data) {
84 if (error) {
85 callback(error, null);
86 } else {
87 _this.__storeFile(data, file, callback);
88 }
89 });
90 }
91 }, {
92 key: "__storeFile",
93 value: function __storeFile(data, file, callback) {
94 fs.writeFile(file, data, function (error) {
95 if (error) {
96 callback(error, null);
97 } else {
98 callback(null, file);
99 }
100 });
101 }
102 }]);
103
104 return FilesResource;
105}();
106
107exports.default = FilesResource;
108module.exports = exports["default"];
109//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9GaWxlc1Jlc291cmNlLmpzIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsIkZpbGVzUmVzb3VyY2UiLCJjcmVkcyIsIm9wdGlvbnMiLCJmaWxlSWRPclVybCIsImNhbGxiYWNrIiwiRXJyb3IiLCJzcGxpdCIsInBvcCIsImNvbmZpZyIsImhvc3QiLCJhcGlIb3N0IiwicGF0aCIsIlBBVEgiLCJtZXRob2QiLCJoZWFkZXJzIiwiQXV0aG9yaXphdGlvbiIsImdlbmVyYXRlSnd0IiwiaHR0cENsaWVudCIsInJlcXVlc3QiLCJmaWxlIiwiZ2V0IiwiZXJyb3IiLCJkYXRhIiwiX19zdG9yZUZpbGUiLCJ3cml0ZUZpbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0FBRUEsSUFBSUEsS0FBS0MsUUFBUSxJQUFSLENBQVQ7O0lBRU1DLGE7Ozs7QUFDSjs7O3dCQUdrQjtBQUNoQixhQUFPLFdBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O0FBTUEseUJBQVlDLEtBQVosRUFBbUJDLE9BQW5CLEVBQTRCO0FBQUE7O0FBQzFCLFNBQUtELEtBQUwsR0FBYUEsS0FBYjtBQUNBLFNBQUtDLE9BQUwsR0FBZUEsT0FBZjtBQUNEOztBQUVEOzs7Ozs7Ozs7O3dCQU1JQyxXLEVBQWFDLFEsRUFBVTtBQUN6QixVQUFJLENBQUNELFdBQUwsRUFBa0I7QUFDaEIsY0FBTSxJQUFJRSxLQUFKLENBQVUsdUNBQVYsQ0FBTjtBQUNEOztBQUVERixvQkFBY0EsWUFBWUcsS0FBWixDQUFrQixHQUFsQixFQUF1QkMsR0FBdkIsQ0FBMkIsQ0FBQyxDQUE1QixDQUFkOztBQUVBLFVBQUlDLFNBQVM7QUFDWEMsY0FBTSxLQUFLUCxPQUFMLENBQWFRLE9BQWIsSUFBd0IsZUFEbkI7QUFFWEMsY0FBU1gsY0FBY1ksSUFBdkIsU0FBK0JULFdBRnBCO0FBR1hVLGdCQUFRLEtBSEc7QUFJWEMsaUJBQVM7QUFDUCwwQkFBZ0IsMEJBRFQ7QUFFUEMscUNBQXlCLEtBQUtkLEtBQUwsQ0FBV2UsV0FBWDtBQUZsQjtBQUpFLE9BQWI7O0FBVUEsV0FBS2QsT0FBTCxDQUFhZSxVQUFiLENBQXdCQyxPQUF4QixDQUFnQ1YsTUFBaEMsRUFBd0NKLFFBQXhDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7eUJBT0tELFcsRUFBYWdCLEksRUFBTWYsUSxFQUFVO0FBQUE7O0FBQ2hDLFdBQUtnQixHQUFMLENBQVNqQixXQUFULEVBQXNCLFVBQUNrQixLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDckMsWUFBSUQsS0FBSixFQUFXO0FBQ1RqQixtQkFBU2lCLEtBQVQsRUFBZ0IsSUFBaEI7QUFDRCxTQUZELE1BRU87QUFDTCxnQkFBS0UsV0FBTCxDQUFpQkQsSUFBakIsRUFBdUJILElBQXZCLEVBQTZCZixRQUE3QjtBQUNEO0FBQ0YsT0FORDtBQU9EOzs7Z0NBRVdrQixJLEVBQU1ILEksRUFBTWYsUSxFQUFVO0FBQ2hDTixTQUFHMEIsU0FBSCxDQUFhTCxJQUFiLEVBQW1CRyxJQUFuQixFQUF5QixpQkFBUztBQUNoQyxZQUFJRCxLQUFKLEVBQVc7QUFDVGpCLG1CQUFTaUIsS0FBVCxFQUFnQixJQUFoQjtBQUNELFNBRkQsTUFFTztBQUNMakIsbUJBQVMsSUFBVCxFQUFlZSxJQUFmO0FBQ0Q7QUFDRixPQU5EO0FBT0Q7Ozs7OztrQkFHWW5CLGEiLCJmaWxlIjoiRmlsZXNSZXNvdXJjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgZnMgPSByZXF1aXJlKFwiZnNcIik7XG5cbmNsYXNzIEZpbGVzUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGBjYWxsc2AgcmVzb3VyY2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0IFBBVEgoKSB7XG4gICAgcmV0dXJuIFwiL3YxL2ZpbGVzXCI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGaWxlc1Jlc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0NyZWRlbnRpYWxzfSBjcmVkcyAtIENyZWRlbnRpYWxzIHVzZWQgd2hlbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBOZXhtbyBBUEkuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgY2xhc3MuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjcmVkcywgb3B0aW9ucykge1xuICAgIHRoaXMuY3JlZHMgPSBjcmVkcztcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdHJlYW0gZm9yIGEgcmVtb3RlIEZpbGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtmaWxlSWRPclVybF0gLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb3IgVVJMIGZvciB0aGUgZmlsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIGdldChmaWxlSWRPclVybCwgY2FsbGJhY2spIHtcbiAgICBpZiAoIWZpbGVJZE9yVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiZmlsZUlkT3JVcmxcIiBpcyBhIHJlcXVpcmVkIHBhcmFtZXRlcicpO1xuICAgIH1cblxuICAgIGZpbGVJZE9yVXJsID0gZmlsZUlkT3JVcmwuc3BsaXQoXCIvXCIpLnBvcCgtMSk7XG5cbiAgICB2YXIgY29uZmlnID0ge1xuICAgICAgaG9zdDogdGhpcy5vcHRpb25zLmFwaUhvc3QgfHwgXCJhcGkubmV4bW8uY29tXCIsXG4gICAgICBwYXRoOiBgJHtGaWxlc1Jlc291cmNlLlBBVEh9LyR7ZmlsZUlkT3JVcmx9YCxcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIixcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuY3JlZHMuZ2VuZXJhdGVKd3QoKX1gXG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSByZW1vdGUgRmlsZSBsb2NhbGx5XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZmlsZUlkT3JVcmxdIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9yIFVSTCBmb3IgdGhlIGZpbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtmaWxlXSAtIEZpbGVuYW1lIG9yIGZpbGUgZGVzY3JpcHRvclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIHNhdmUoZmlsZUlkT3JVcmwsIGZpbGUsIGNhbGxiYWNrKSB7XG4gICAgdGhpcy5nZXQoZmlsZUlkT3JVcmwsIChlcnJvciwgZGF0YSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX19zdG9yZUZpbGUoZGF0YSwgZmlsZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgX19zdG9yZUZpbGUoZGF0YSwgZmlsZSwgY2FsbGJhY2spIHtcbiAgICBmcy53cml0ZUZpbGUoZmlsZSwgZGF0YSwgZXJyb3IgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIGZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVzUmVzb3VyY2U7XG4iXX0=
\No newline at end of file