UNPKG

@brandazm/dynamic-permissions

Version:

A flexible and powerful permissions management system for NestJS applications with built-in security features

86 lines 3.94 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DynamicQueryBuilder = void 0; class DynamicQueryBuilder { static buildPermissionQuery(queryBuilder, config, alias = 'permission') { const { id, name, description, level, is_active, created_at, updated_at } = config, customFields = __rest(config, ["id", "name", "description", "level", "is_active", "created_at", "updated_at"]); queryBuilder.select(`${alias}.${id}`, 'id').addSelect(`${alias}.${name}`, 'name'); if (description) { queryBuilder.addSelect(`${alias}.${description}`, 'description'); } if (level) { queryBuilder.addSelect(`${alias}.${level}`, 'level'); } if (is_active) { queryBuilder.addSelect(`${alias}.${is_active}`, 'is_active'); } if (created_at) { queryBuilder.addSelect(`${alias}.${created_at}`, 'created_at'); } if (updated_at) { queryBuilder.addSelect(`${alias}.${updated_at}`, 'updated_at'); } Object.entries(customFields).forEach(([key, value]) => { if (value) { queryBuilder.addSelect(`${alias}.${value}`, key); } }); return queryBuilder; } static buildUserPermissionQuery(queryBuilder, config, alias = 'userPermission') { const { id, user_id, permission_id, granted_at, expires_at, is_active } = config, customFields = __rest(config, ["id", "user_id", "permission_id", "granted_at", "expires_at", "is_active"]); queryBuilder .select(`${alias}.${id}`, 'id') .addSelect(`${alias}.${user_id}`, 'user_id') .addSelect(`${alias}.${permission_id}`, 'permission_id') .addSelect(`${alias}.${granted_at}`, 'granted_at'); if (expires_at) { queryBuilder.addSelect(`${alias}.${expires_at}`, 'expires_at'); } if (is_active) { queryBuilder.addSelect(`${alias}.${is_active}`, 'is_active'); } Object.entries(customFields).forEach(([key, value]) => { if (value) { queryBuilder.addSelect(`${alias}.${value}`, key); } }); return queryBuilder; } static buildRouterPermissionQuery(queryBuilder, config, alias = 'routerPermission') { const { id, route, method, permission_id, is_active, created_at, updated_at } = config, customFields = __rest(config, ["id", "route", "method", "permission_id", "is_active", "created_at", "updated_at"]); queryBuilder .select(`${alias}.${id}`, 'id') .addSelect(`${alias}.${route}`, 'route') .addSelect(`${alias}.${method}`, 'method') .addSelect(`${alias}.${permission_id}`, 'permission_id'); if (is_active) { queryBuilder.addSelect(`${alias}.${is_active}`, 'is_active'); } if (created_at) { queryBuilder.addSelect(`${alias}.${created_at}`, 'created_at'); } if (updated_at) { queryBuilder.addSelect(`${alias}.${updated_at}`, 'updated_at'); } Object.entries(customFields).forEach(([key, value]) => { if (value) { queryBuilder.addSelect(`${alias}.${value}`, key); } }); return queryBuilder; } } exports.DynamicQueryBuilder = DynamicQueryBuilder; //# sourceMappingURL=query-builder.util.js.map