UNPKG

baasic-sdk-javascript

Version:

JavaScript SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).

98 lines (97 loc) 5.7 kB
"use strict"; /** * @module dynamicResourceACLRoute * @description Baasic Dynamic Resource ACL Route Definition provides Baasic route templates which can be expanded to Baasic REST URIs. Various services can use Baasic Dynamic Resource ACL Route Definition to obtain needed routes while other routes will be obtained through HAL. By convention, all route services use the same function names as their corresponding services. */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var inversify_1 = require("inversify"); var common_1 = require("../../common"); ; var contracts_1 = require("../../core/contracts"); var DynamicResourceACLRoute = /** @class */ (function (_super) { tslib_1.__extends(DynamicResourceACLRoute, _super); function DynamicResourceACLRoute(appOptions) { var _this = _super.call(this, appOptions) || this; _this.appOptions = appOptions; _this.getRoute = 'resources/{schemaName}/{id}/acl/{?fields}'; _this.updateRoute = 'resources/{schemaName}/{id}/acl/{?fields}'; _this.deleteByUserRoute = 'resources/{schemaName}/{id}/acl/actions/{accessAction}/users/{user}/'; _this.deleteByRoleRoute = 'resources/{schemaName}/{id}/acl/actions/{accessAction}/roles/{role}/'; return _this; } /** * Parses get acl route; this URI template should be expanded with the Id of the dynamic resource and name of the dynamic resource schema. * @method * @param options Query resource options object. * @example dynamicResourceACLRoute.get(options) **/ DynamicResourceACLRoute.prototype.get = function (options) { var params = this.utility.extend({}, options); return _super.prototype.baseCreate.call(this, this.getRoute, params); }; /** * Parses update acl route; this URI template should be expanded with the Id of the dynamic resource and name of the dynamic resource schema. * @method * @param options Options object. * @example dynamicResourceACLRoute.update(options) **/ DynamicResourceACLRoute.prototype.update = function (options) { var params = this.utility.extend({}, options); return _super.prototype.baseCreate.call(this, this.updateRoute, options); }; /** * Parses deleteByUser acl route which can be expanded with additional options. Supported items are: * - `schemaName` - Name of the dynamic resource schema. * - `id` - Id of the dynamic resource. * - `accessAction` - Action abbreviation which identifies ACL policy assigned to the specified user and dynamic resource item. * - `user` - A value which uniquely identifies user for which ACL policy needs to be removed. * @method * @param action Action abbreviation which identifies ACL policy assigned to the specified user and dynamic resource item. * @param username A value which uniquely identifies user for which ACL policy needs to be removed. * @param data ACL Policy object used to perform delete action. * @example dynamicResourceACLRoute.deleteByUser(action, username, data); **/ DynamicResourceACLRoute.prototype.deleteByUser = function (action, username, data) { var params = this.modelMapper.removeParams(data); params.user = username; params.accessAction = action; return _super.prototype.baseCreate.call(this, this.deleteByUserRoute, params); }; /** * Parses deleteByRole acl route which can be expanded with additional options. Supported items are: * - `schemaName` - Name of the dynamic resource schema. * - `id` - Id of the dynamic resource. * - `accessAction` - Action abbreviation which identifies ACL policy assigned to the specified role and dynamic resource item. * - `role` - A value which uniquely identifies role for which ACL policy needs to be removed. * @method * @param action Action abbreviation which identifies ACL policy assigned to the specified role and dynamic resource item. * @param role A value which uniquely identifies role for which ACL policy needs to be removed. * @param data ACLPolicy object used to perform delete action. * @example dynamicResourceACLRoute.deleteByRole(action, role, data) **/ DynamicResourceACLRoute.prototype.deleteByRole = function (action, role, data) { var params = this.modelMapper.removeParams(data); params.role = role; params.accessAction = action; return _super.prototype.baseCreate.call(this, this.deleteByRoleRoute, params); }; DynamicResourceACLRoute.prototype.updateParams = function (options) { var params = this.utility.extend({}, options); return params[this.modelMapper.modelPropertyName]; }; DynamicResourceACLRoute = tslib_1.__decorate([ inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(contracts_1.TYPES.IAppOptions)), tslib_1.__metadata("design:paramtypes", [Object]) ], DynamicResourceACLRoute); return DynamicResourceACLRoute; }(common_1.BaseRoute)); exports.DynamicResourceACLRoute = DynamicResourceACLRoute; /** * @overview ***Notes:** - Refer to the [Baasic REST API](http://dev.baasic.com/api/reference/home) for detailed information about available Baasic REST API end-points. - [URI Template](https://github.com/Baasic/uritemplate-js) syntax enables expanding the Baasic route templates to Baasic REST URIs providing it with an object that contains URI parameters. - All end-point objects are transformed by the associated route service. */