UNPKG

baqend

Version:

Baqend JavaScript SDK

165 lines 11.3 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileFactory = void 0; var Factory_1 = require("./Factory"); var File_1 = require("./File"); var message = __importStar(require("../message")); var util_1 = require("../util"); var connector_1 = require("../connector"); var intersection_1 = require("../intersection"); var FileFactory = /** @class */ (function (_super) { __extends(FileFactory, _super); function FileFactory() { var _this = _super !== null && _super.apply(this, arguments) || this; /** * The owning EntityManager where this factory belongs to */ _this.db = null; return _this; } /** * Creates a new FileFactory for the given type * @param db * @return A new file factory */ FileFactory.create = function (db) { var factory = this.createFactory(File_1.File); factory.db = db; return factory; }; /** * Creates a new file * @param args Constructor arguments used for instantiation, the constructor will not be called * when no arguments are passed * @return A new created file */ FileFactory.prototype.newInstance = function (args) { var instance = _super.prototype.newInstance.call(this, args); instance.db = this.db; return instance; }; /** * Deserialize the file metadata from a json object back to a new file instance * @param json The file metadata as json * @return The deserialize File instance */ FileFactory.prototype.fromJSON = function (json) { var file = this.newInstance([json.id]); file.fromJSON(json); return file; }; /** * Updates the metadata of the root file directory formally the file "bucket" * @param bucket The name of the root file directory * @param metadata The new metadata for the bucket * @param doneCallback Invoked if the operation succeeds * @param failCallback The callback is invoked if any error has occurred * @return A promise which will fulfilled with the updated metadata */ FileFactory.prototype.saveMetadata = function (bucket, metadata, doneCallback, failCallback) { var msg = new message.SetFileBucketMetadata(bucket, metadata); return this.db.send(msg).then(doneCallback, failCallback); }; /** * Gets the metadata of the root folder (formally the file "bucket") * @param bucket The name of the root file directory * @param options The load metadata options * @param [options.refresh=false] Force a revalidation while fetching the metadata * @param doneCallback * The callback is invoked after the metadata is fetched * @param failCallback The callback is invoked if any error has occurred * @return A promise which will be fulfilled with the bucket ACLs */ FileFactory.prototype.loadMetadata = function (bucket, options, doneCallback, failCallback) { var msg = new message.GetFileBucketMetadata(bucket); // this._db.ensureCacheHeader(this.id, msg, options.refresh); // do not white list the file, because head-request does not revalidate the cache. return this.db.send(msg).then(function (response) { var result = {}; intersection_1.Permission.BASE_PERMISSIONS.forEach(function (key) { result[key] = intersection_1.Permission.fromJSON(response.entity[key] || {}); }); return result; }, function (e) { if (e.status === connector_1.StatusCode.OBJECT_NOT_FOUND) { return null; } throw e; }).then(doneCallback, failCallback); }; /** * Lists all the buckets. * @param doneCallback The callback is invoked with the listed buckets * @param failCallback The callback is invoked if any error has occurred * @return The listed buckets. */ FileFactory.prototype.listBuckets = function (doneCallback, failCallback) { var _this = this; return this.db.send(new message.ListBuckets()).then(function (response) { return (response.entity.map(function (bucket) { return _this.new("".concat(bucket, "/")); })); }).then(doneCallback, failCallback); }; /** * Lists the files (and folders) in the given folder. * * @param folderOrPath The folder/path to list. * @param start The file/folder from where to start listing (not included) * @param count The maximum number of files to return. * @param doneCallback The callback is invoked with the listed files * @param failCallback The callback is invoked if any error has occurred * @return The listed files/folders. */ FileFactory.prototype.listFiles = function (folderOrPath, start, count, doneCallback, failCallback) { var _this = this; var folder; if (typeof folderOrPath === 'string') { var path_1 = (0, util_1.trailingSlashIt)(folderOrPath); folder = this.new({ path: path_1 }); } else { folder = folderOrPath; } var path = folder.key; var bucket = folder.bucket; return this.db.send(new message.ListFiles(bucket, path, start ? start.key : undefined, count)).then(function (response) { return (response.entity.map(function (file) { return _this.new(file); })); }).then(doneCallback, failCallback); }; return FileFactory; }(Factory_1.Factory)); exports.FileFactory = FileFactory; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYmluZGluZy9GaWxlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFvQztBQUNwQywrQkFBMkM7QUFDM0Msa0RBQXNDO0FBQ3RDLGdDQUFtRDtBQUNuRCwwQ0FBMEM7QUFFMUMsZ0RBQTZDO0FBK0I3QztJQUFpQywrQkFBYTtJQUE5QztRQUFBLHFFQTBIQztRQTlHQzs7V0FFRztRQUNJLFFBQUUsR0FBa0IsSUFBVyxDQUFDOztJQTJHekMsQ0FBQztJQXpIQzs7OztPQUlHO0lBQ0ksa0JBQU0sR0FBYixVQUFjLEVBQWlCO1FBQzdCLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQW9CLFdBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFPRDs7Ozs7T0FLRztJQUNILGlDQUFXLEdBQVgsVUFBWSxJQUFxQjtRQUMvQixJQUFNLFFBQVEsR0FBRyxpQkFBTSxXQUFXLFlBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsOEJBQVEsR0FBUixVQUFTLElBQWE7UUFDcEIsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGtDQUFZLEdBQVosVUFBYSxNQUFjLEVB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