backendless-console-sdk
Version:
Backendless Console SDK for Node.js and browser
150 lines (149 loc) • 7.89 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _urls = _interopRequireDefault(require("./urls"));
var _totalRows = _interopRequireDefault(require("./utils/total-rows"));
var _cacheTags = require("./utils/cache-tags");
var _path = require("./utils/path");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var getFileFolder = function getFileFolder(file) {
var tokens = file.split('/');
if (tokens.length > 1) {
tokens.pop();
return tokens.join('/');
}
return '';
};
var _default = function _default(req) {
return {
loadDirectory: function loadDirectory(appId, path, params) {
path = path || '/';
var _ref = params || {},
pattern = _ref.pattern,
sub = _ref.sub,
sortBy = _ref.sortBy,
sortDirection = _ref.sortDirection,
pageSize = _ref.pageSize,
offset = _ref.offset;
var dataReq = req.get(_urls["default"].directoryView(appId, path)).query({
pattern: pattern,
sub: sub,
sortBy: sortBy,
sortDirection: sortDirection,
pageSize: pageSize,
offset: offset
}).cacheTags((0, _cacheTags.FOLDER)(appId, path));
return (0, _totalRows["default"])(req).getWithData(dataReq);
},
loadFullDirectory: function loadFullDirectory(appId, path, params) {
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var currentQuery, url, totalCount, filesList, requests, results;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
currentQuery = _objectSpread(_objectSpread({}, params), {}, {
pageSize: 100,
offset: 0
});
url = _urls["default"].directoryView(appId, path);
_context.next = 4;
return (0, _totalRows["default"])(req).get(url);
case 4:
totalCount = _context.sent;
filesList = [];
requests = [];
while (currentQuery.offset < totalCount) {
requests.push(req.get(url).query(currentQuery));
currentQuery = _objectSpread(_objectSpread({}, currentQuery), {}, {
offset: currentQuery.offset + 100
});
}
_context.next = 10;
return Promise.all(requests);
case 10:
results = _context.sent;
results.forEach(function (files) {
return filesList.push.apply(filesList, (0, _toConsumableArray2["default"])(files));
});
return _context.abrupt("return", filesList);
case 13:
case "end":
return _context.stop();
}
}, _callee);
}))();
},
createDir: function createDir(appId, path, folderName) {
return req.post(_urls["default"].createDir(appId, path, folderName)).cacheTags((0, _cacheTags.FOLDER)(appId, path));
},
getFileContent: function getFileContent(appId, filePath) {
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
return _context2.abrupt("return", req.get(_urls["default"].fileDownload(appId, filePath)));
case 1:
case "end":
return _context2.stop();
}
}, _callee2);
}))();
},
performOperation: function performOperation(appId, filePath, operation) {
//for root directory operations it has send '/' as path
var path = filePath ? (0, _path.encodePath)(filePath) : encodeURIComponent('/');
return req.put("".concat(_urls["default"].appConsole(appId), "/files/").concat(path)).query({
operation: operation
}).cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(path)));
},
fileExists: function fileExists(appId, filePath) {
return req.get(_urls["default"].fileExists(appId, filePath));
},
editFile: function editFile(appId, filePath, fileContent) {
return req.post(_urls["default"].fileEdit(appId, filePath), {
file: fileContent
});
},
createFile: function createFile(appId, filePath, fileContent) {
return req.post(_urls["default"].fileCreate(appId, filePath), {
file: fileContent
}).set('Accept', '*/*') //workarround for BKNDLSS-13702
.cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(filePath)));
},
moveFile: function moveFile(appId, filePath, newFilePath) {
return req.post(_urls["default"].fileMove(appId, filePath), (0, _path.encodePath)(newFilePath)).cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(filePath)));
},
copyFile: function copyFile(appId, filePath, newFilePath) {
return req.post(_urls["default"].fileCopy(appId, filePath), (0, _path.encodePath)(newFilePath)).cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(filePath)));
},
renameFile: function renameFile(appId, filePath, newFileName) {
return req.post(_urls["default"].fileRename(appId, filePath), encodeURIComponent(newFileName)).cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(filePath)));
},
deleteFile: function deleteFile(appId, filePath) {
return req["delete"](_urls["default"].fileDelete(appId, filePath)).cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(filePath)));
},
uploadFile: function uploadFile(appId, file, path, fileName) {
var overwrite = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
return req.post(_urls["default"].fileUpload(appId, "".concat(path, "/").concat(fileName)), file).query({
overwrite: overwrite
}).cacheTags((0, _cacheTags.FOLDER)(appId, path));
},
createConsoleFile: function createConsoleFile(appId, path, content) {
return req.post("".concat(_urls["default"].appConsole(appId), "/files/create/").concat((0, _path.encodePath)(path)), content).set('Accept', '*/*') //workarround for BKNDLSS-13702
.cacheTags((0, _cacheTags.FOLDER)(appId, getFileFolder(path)));
},
viewFiles: function viewFiles(appId) {
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
return req.get(_urls["default"].fileView(appId, path));
}
};
};
exports["default"] = _default;