UNPKG

forest-express

Version:

Official package for all Forest Express Lianas

108 lines (107 loc) 4.47 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _require = require('@forestadmin/context'), inject = _require.inject; var ScopeManager = /*#__PURE__*/function () { function ScopeManager() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : inject(), forestAdminClient = _ref.forestAdminClient; (0, _classCallCheck2["default"])(this, ScopeManager); /** @private @readonly @type {import('@forestadmin/forestadmin-client').ForestAdminClient} */ this.forestAdminClient = forestAdminClient; } (0, _createClass2["default"])(ScopeManager, [{ key: "appendScopeForUser", value: function () { var _appendScopeForUser = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(existingFilter, user, collectionName) { var scopeFilter, filters; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.getScopeForUser(user, collectionName, true); case 2: scopeFilter = _context.sent; filters = [existingFilter, scopeFilter].filter(Boolean); _context.t0 = filters.length; _context.next = _context.t0 === 0 ? 7 : _context.t0 === 1 ? 8 : 9; break; case 7: return _context.abrupt("return", undefined); case 8: return _context.abrupt("return", filters[0]); case 9: return _context.abrupt("return", "{\"aggregator\":\"and\",\"conditions\":[".concat(existingFilter, ",").concat(scopeFilter, "]}")); case 10: case "end": return _context.stop(); } }, _callee, this); })); function appendScopeForUser(_x, _x2, _x3) { return _appendScopeForUser.apply(this, arguments); } return appendScopeForUser; }() }, { key: "getScopeForUser", value: function () { var _getScopeForUser = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(user, collectionName) { var asString, scopeFilters, _args2 = arguments; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: asString = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : false; if (user) { _context2.next = 3; break; } throw new Error('Missing required user'); case 3: if (user.renderingId) { _context2.next = 5; break; } throw new Error('Missing required renderingId'); case 5: if (collectionName) { _context2.next = 7; break; } throw new Error('Missing required collectionName'); case 7: _context2.next = 9; return this.forestAdminClient.getScope({ renderingId: user.renderingId, userId: user.id, collectionName: collectionName }); case 9: scopeFilters = _context2.sent; return _context2.abrupt("return", asString && !!scopeFilters ? JSON.stringify(scopeFilters) : scopeFilters); case 11: case "end": return _context2.stop(); } }, _callee2, this); })); function getScopeForUser(_x4, _x5) { return _getScopeForUser.apply(this, arguments); } return getScopeForUser; }() }, { key: "invalidateScopeCache", value: function invalidateScopeCache(renderingId) { this.forestAdminClient.markScopesAsUpdated(renderingId); } }]); return ScopeManager; }(); module.exports = ScopeManager;