1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _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 |
|
9 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
10 |
|
11 | var fs = require("fs");
|
12 |
|
13 | var 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 |
|
107 | exports.default = FilesResource;
|
108 | module.exports = exports["default"];
|
109 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9GaWxlc1Jlc291cmNlLmpzIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsIkZpbGVzUmVzb3VyY2UiLCJjcmVkcyIsIm9wdGlvbnMiLCJmaWxlSWRPclVybCIsImNhbGxiYWNrIiwiRXJyb3IiLCJzcGxpdCIsInBvcCIsImNvbmZpZyIsImhvc3QiLCJhcGlIb3N0IiwicGF0aCIsIlBBVEgiLCJtZXRob2QiLCJoZWFkZXJzIiwiQXV0aG9yaXphdGlvbiIsImdlbmVyYXRlSnd0IiwiaHR0cENsaWVudCIsInJlcXVlc3QiLCJmaWxlIiwiZ2V0IiwiZXJyb3IiLCJkYXRhIiwiX19zdG9yZUZpbGUiLCJ3cml0ZUZpbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0FBRUEsSUFBSUEsS0FBS0MsUUFBUSxJQUFSLENBQVQ7O0lBRU1DLGE7Ozs7QUFDSjs7O3dCQUdrQjtBQUNoQixhQUFPLFdBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O0FBTUEseUJBQVlDLEtBQVosRUFBbUJDLE9BQW5CLEVBQTRCO0FBQUE7O0FBQzFCLFNBQUtELEtBQUwsR0FBYUEsS0FBYjtBQUNBLFNBQUtDLE9BQUwsR0FBZUEsT0FBZjtBQUNEOztBQUVEOzs7Ozs7Ozs7O3dCQU1JQyxXLEVBQWFDLFEsRUFBVTtBQUN6QixVQUFJLENBQUNELFdBQUwsRUFBa0I7QUFDaEIsY0FBTSxJQUFJRSxLQUFKLENBQVUsdUNBQVYsQ0FBTjtBQUNEOztBQUVERixvQkFBY0EsWUFBWUcsS0FBWixDQUFrQixHQUFsQixFQUF1QkMsR0FBdkIsQ0FBMkIsQ0FBQyxDQUE1QixDQUFkOztBQUVBLFVBQUlDLFNBQVM7QUFDWEMsY0FBTSxLQUFLUCxPQUFMLENBQWFRLE9BQWIsSUFBd0IsZUFEbkI7QUFFWEMsY0FBU1gsY0FBY1ksSUFBdkIsU0FBK0JULFdBRnBCO0FBR1hVLGdCQUFRLEtBSEc7QUFJWEMsaUJBQVM7QUFDUCwwQkFBZ0IsMEJBRFQ7QUFFUEMscUNBQXlCLEtBQUtkLEtBQUwsQ0FBV2UsV0FBWDtBQUZsQjtBQUpFLE9BQWI7O0FBVUEsV0FBS2QsT0FBTCxDQUFhZSxVQUFiLENBQXdCQyxPQUF4QixDQUFnQ1YsTUFBaEMsRUFBd0NKLFFBQXhDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7eUJBT0tELFcsRUFBYWdCLEksRUFBTWYsUSxFQUFVO0FBQUE7O0FBQ2hDLFdBQUtnQixHQUFMLENBQVNqQixXQUFULEVBQXNCLFVBQUNrQixLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDckMsWUFBSUQsS0FBSixFQUFXO0FBQ1RqQixtQkFBU2lCLEtBQVQsRUFBZ0IsSUFBaEI7QUFDRCxTQUZELE1BRU87QUFDTCxnQkFBS0UsV0FBTCxDQUFpQkQsSUFBakIsRUFBdUJILElBQXZCLEVBQTZCZixRQUE3QjtBQUNEO0FBQ0YsT0FORDtBQU9EOzs7Z0NBRVdrQixJLEVBQU1ILEksRUFBTWYsUSxFQUFVO0FBQ2hDTixTQUFHMEIsU0FBSCxDQUFhTCxJQUFiLEVBQW1CRyxJQUFuQixFQUF5QixpQkFBUztBQUNoQyxZQUFJRCxLQUFKLEVBQVc7QUFDVGpCLG1CQUFTaUIsS0FBVCxFQUFnQixJQUFoQjtBQUNELFNBRkQsTUFFTztBQUNMakIsbUJBQVMsSUFBVCxFQUFlZSxJQUFmO0FBQ0Q7QUFDRixPQU5EO0FBT0Q7Ozs7OztrQkFHWW5CLGEiLCJmaWxlIjoiRmlsZXNSZXNvdXJjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgZnMgPSByZXF1aXJlKFwiZnNcIik7XG5cbmNsYXNzIEZpbGVzUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGBjYWxsc2AgcmVzb3VyY2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0IFBBVEgoKSB7XG4gICAgcmV0dXJuIFwiL3YxL2ZpbGVzXCI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGaWxlc1Jlc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0NyZWRlbnRpYWxzfSBjcmVkcyAtIENyZWRlbnRpYWxzIHVzZWQgd2hlbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBOZXhtbyBBUEkuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgY2xhc3MuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjcmVkcywgb3B0aW9ucykge1xuICAgIHRoaXMuY3JlZHMgPSBjcmVkcztcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdHJlYW0gZm9yIGEgcmVtb3RlIEZpbGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtmaWxlSWRPclVybF0gLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb3IgVVJMIGZvciB0aGUgZmlsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIGdldChmaWxlSWRPclVybCwgY2FsbGJhY2spIHtcbiAgICBpZiAoIWZpbGVJZE9yVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiZmlsZUlkT3JVcmxcIiBpcyBhIHJlcXVpcmVkIHBhcmFtZXRlcicpO1xuICAgIH1cblxuICAgIGZpbGVJZE9yVXJsID0gZmlsZUlkT3JVcmwuc3BsaXQoXCIvXCIpLnBvcCgtMSk7XG5cbiAgICB2YXIgY29uZmlnID0ge1xuICAgICAgaG9zdDogdGhpcy5vcHRpb25zLmFwaUhvc3QgfHwgXCJhcGkubmV4bW8uY29tXCIsXG4gICAgICBwYXRoOiBgJHtGaWxlc1Jlc291cmNlLlBBVEh9LyR7ZmlsZUlkT3JVcmx9YCxcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIixcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuY3JlZHMuZ2VuZXJhdGVKd3QoKX1gXG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSByZW1vdGUgRmlsZSBsb2NhbGx5XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZmlsZUlkT3JVcmxdIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9yIFVSTCBmb3IgdGhlIGZpbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtmaWxlXSAtIEZpbGVuYW1lIG9yIGZpbGUgZGVzY3JpcHRvclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIHNhdmUoZmlsZUlkT3JVcmwsIGZpbGUsIGNhbGxiYWNrKSB7XG4gICAgdGhpcy5nZXQoZmlsZUlkT3JVcmwsIChlcnJvciwgZGF0YSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX19zdG9yZUZpbGUoZGF0YSwgZmlsZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgX19zdG9yZUZpbGUoZGF0YSwgZmlsZSwgY2FsbGJhY2spIHtcbiAgICBmcy53cml0ZUZpbGUoZmlsZSwgZGF0YSwgZXJyb3IgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIGZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVzUmVzb3VyY2U7XG4iXX0= |
\ | No newline at end of file |