@tc-libs/role 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +11 -0
  2. package/package.json +11 -0
  3. package/src/constants/role.constant.d.ts +2 -0
  4. package/src/constants/role.constant.js +6 -0
  5. package/src/constants/role.constant.js.map +1 -0
  6. package/src/constants/role.doc.constant.d.ts +23 -0
  7. package/src/constants/role.doc.constant.js +35 -0
  8. package/src/constants/role.doc.constant.js.map +1 -0
  9. package/src/constants/role.list.constant.d.ts +8 -0
  10. package/src/constants/role.list.constant.js +13 -0
  11. package/src/constants/role.list.constant.js.map +1 -0
  12. package/src/constants/role.permissions.constants.d.ts +2 -0
  13. package/src/constants/role.permissions.constants.js +9 -0
  14. package/src/constants/role.permissions.constants.js.map +1 -0
  15. package/src/controllers/role.admin.controller.d.ts +24 -0
  16. package/src/controllers/role.admin.controller.js +281 -0
  17. package/src/controllers/role.admin.controller.js.map +1 -0
  18. package/src/decorators/role.admin.decorator.d.ts +5 -0
  19. package/src/decorators/role.admin.decorator.js +28 -0
  20. package/src/decorators/role.admin.decorator.js.map +1 -0
  21. package/src/decorators/role.decorator.d.ts +1 -0
  22. package/src/decorators/role.decorator.js +9 -0
  23. package/src/decorators/role.decorator.js.map +1 -0
  24. package/src/docs/role.admin.doc.d.ts +8 -0
  25. package/src/docs/role.admin.doc.js +111 -0
  26. package/src/docs/role.admin.doc.js.map +1 -0
  27. package/src/dtos/role.active.dto.d.ts +3 -0
  28. package/src/dtos/role.active.dto.js +21 -0
  29. package/src/dtos/role.active.dto.js.map +1 -0
  30. package/src/dtos/role.create.dto.d.ts +6 -0
  31. package/src/dtos/role.create.dto.js +47 -0
  32. package/src/dtos/role.create.dto.js.map +1 -0
  33. package/src/dtos/role.request.dto.d.ts +3 -0
  34. package/src/dtos/role.request.dto.js +23 -0
  35. package/src/dtos/role.request.dto.js.map +1 -0
  36. package/src/dtos/role.update-name.dto.d.ts +5 -0
  37. package/src/dtos/role.update-name.dto.js +11 -0
  38. package/src/dtos/role.update-name.dto.js.map +1 -0
  39. package/src/dtos/role.update-permission.dto.d.ts +5 -0
  40. package/src/dtos/role.update-permission.dto.js +12 -0
  41. package/src/dtos/role.update-permission.dto.js.map +1 -0
  42. package/src/errors/400/api.role.400.error.d.ts +4 -0
  43. package/src/errors/400/api.role.400.error.js +11 -0
  44. package/src/errors/400/api.role.400.error.js.map +1 -0
  45. package/src/errors/400/index.d.ts +1 -0
  46. package/src/errors/400/index.js +5 -0
  47. package/src/errors/400/index.js.map +1 -0
  48. package/src/errors/index.d.ts +1 -0
  49. package/src/errors/index.js +5 -0
  50. package/src/errors/index.js.map +1 -0
  51. package/src/guards/role.active.guard.d.ts +7 -0
  52. package/src/guards/role.active.guard.js +31 -0
  53. package/src/guards/role.active.guard.js.map +1 -0
  54. package/src/guards/role.not-found.guard.d.ts +4 -0
  55. package/src/guards/role.not-found.guard.js +21 -0
  56. package/src/guards/role.not-found.guard.js.map +1 -0
  57. package/src/guards/role.put-to-request.guard.d.ts +7 -0
  58. package/src/guards/role.put-to-request.guard.js +27 -0
  59. package/src/guards/role.put-to-request.guard.js.map +1 -0
  60. package/src/index.d.ts +8 -0
  61. package/src/index.js +12 -0
  62. package/src/index.js.map +1 -0
  63. package/src/interfaces/role.interface.d.ts +8 -0
  64. package/src/interfaces/role.interface.js +3 -0
  65. package/src/interfaces/role.interface.js.map +1 -0
  66. package/src/repository/entities/role.entity.d.ts +16 -0
  67. package/src/repository/entities/role.entity.js +64 -0
  68. package/src/repository/entities/role.entity.js.map +1 -0
  69. package/src/repository/repositories/role.repository.d.ts +11 -0
  70. package/src/repository/repositories/role.repository.js +34 -0
  71. package/src/repository/repositories/role.repository.js.map +1 -0
  72. package/src/repository/role.repository.module.d.ts +2 -0
  73. package/src/repository/role.repository.module.js +27 -0
  74. package/src/repository/role.repository.module.js.map +1 -0
  75. package/src/role.module.d.ts +2 -0
  76. package/src/role.module.js +20 -0
  77. package/src/role.module.js.map +1 -0
  78. package/src/serializations/index.d.ts +3 -0
  79. package/src/serializations/index.js +7 -0
  80. package/src/serializations/index.js.map +1 -0
  81. package/src/serializations/role.access-for.serialization.d.ts +3 -0
  82. package/src/serializations/role.access-for.serialization.js +18 -0
  83. package/src/serializations/role.access-for.serialization.js.map +1 -0
  84. package/src/serializations/role.get.serialization.d.ts +11 -0
  85. package/src/serializations/role.get.serialization.js +64 -0
  86. package/src/serializations/role.get.serialization.js.map +1 -0
  87. package/src/serializations/role.list.serialization.d.ts +6 -0
  88. package/src/serializations/role.list.serialization.js +23 -0
  89. package/src/serializations/role.list.serialization.js.map +1 -0
  90. package/src/services/role.service.d.ts +24 -0
  91. package/src/services/role.service.js +71 -0
  92. package/src/services/role.service.js.map +1 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var RoleRepository_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RoleRepository = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const common_1 = require("@nestjs/common");
7
+ const app_cache_1 = require("@tc-libs/app-cache");
8
+ const database_1 = require("@tc-libs/database");
9
+ const permission_1 = require("@tc-libs/permission");
10
+ const mongoose_1 = require("mongoose");
11
+ const role_entity_1 = require("../entities/role.entity");
12
+ let RoleRepository = RoleRepository_1 = class RoleRepository extends database_1.DatabaseMongoRepositoryAbstract {
13
+ constructor(roleModel, connection, _cache) {
14
+ super(roleModel, connection, _cache, {
15
+ path: 'permissions',
16
+ localField: 'permissions',
17
+ foreignField: '_id',
18
+ model: permission_1.PermissionEntity.name,
19
+ });
20
+ this.roleModel = roleModel;
21
+ this.connection = connection;
22
+ this._logger = new common_1.Logger(RoleRepository_1.name);
23
+ }
24
+ };
25
+ exports.RoleRepository = RoleRepository;
26
+ exports.RoleRepository = RoleRepository = RoleRepository_1 = tslib_1.__decorate([
27
+ (0, common_1.Injectable)(),
28
+ tslib_1.__param(0, (0, database_1.DatabaseModel)(role_entity_1.RoleEntity.name)),
29
+ tslib_1.__param(1, (0, database_1.DatabaseConnection)()),
30
+ tslib_1.__metadata("design:paramtypes", [mongoose_1.Model,
31
+ mongoose_1.Connection,
32
+ app_cache_1.AppCacheService])
33
+ ], RoleRepository);
34
+ //# sourceMappingURL=role.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.repository.js","sourceRoot":"","sources":["../../../../../../packages/role/src/repository/repositories/role.repository.ts"],"names":[],"mappings":";;;;;AAAA,2CAAoD;AACpD,kDAAqD;AACrD,gDAI2B;AAC3B,oDAAuD;AACvD,uCAA6C;AAC7C,yDAA8D;AAGvD,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,0CAGnC;IAEC,YAEE,SAA6C,EAE7C,UAAuC,EACvC,MAAuB;QAEvB,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;YACnC,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,aAAa;YACzB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,6BAAgB,CAAC,IAAI;SAC7B,CAAC,CAAC;QAVc,cAAS,GAAT,SAAS,CAAmB;QAE5B,eAAU,GAAV,UAAU,CAAY;QALtB,YAAO,GAAW,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAcrE,CAAC;CACF,CAAA;AAnBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAOR,mBAAA,IAAA,wBAAa,EAAC,wBAAU,CAAC,IAAI,CAAC,CAAA;IAE9B,mBAAA,IAAA,6BAAkB,GAAE,CAAA;6CADO,gBAAK;QAEJ,qBAAU;QAC/B,2BAAe;GAVd,cAAc,CAmB1B"}
@@ -0,0 +1,2 @@
1
+ export declare class RoleRepositoryModule {
2
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleRepositoryModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const mongoose_1 = require("@nestjs/mongoose");
7
+ const role_entity_1 = require("./entities/role.entity");
8
+ const role_repository_1 = require("./repositories/role.repository");
9
+ let RoleRepositoryModule = class RoleRepositoryModule {
10
+ };
11
+ exports.RoleRepositoryModule = RoleRepositoryModule;
12
+ exports.RoleRepositoryModule = RoleRepositoryModule = tslib_1.__decorate([
13
+ (0, common_1.Module)({
14
+ providers: [role_repository_1.RoleRepository],
15
+ exports: [role_repository_1.RoleRepository],
16
+ controllers: [],
17
+ imports: [
18
+ mongoose_1.MongooseModule.forFeature([
19
+ {
20
+ name: role_entity_1.RoleEntity.name,
21
+ schema: role_entity_1.RoleSchema,
22
+ },
23
+ ]),
24
+ ],
25
+ })
26
+ ], RoleRepositoryModule);
27
+ //# sourceMappingURL=role.repository.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.repository.module.js","sourceRoot":"","sources":["../../../../../packages/role/src/repository/role.repository.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,+CAAkD;AAClD,wDAAgE;AAChE,oEAAgE;AAczD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oDAAoB;+BAApB,oBAAoB;IAbhC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,gCAAc,CAAC;QAC3B,OAAO,EAAE,CAAC,gCAAc,CAAC;QACzB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,yBAAc,CAAC,UAAU,CAAC;gBACxB;oBACE,IAAI,EAAE,wBAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,wBAAU;iBACnB;aACF,CAAC;SACH;KACF,CAAC;GACW,oBAAoB,CAAG"}
@@ -0,0 +1,2 @@
1
+ export declare class RoleModule {
2
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const role_service_1 = require("./services/role.service");
7
+ const role_repository_module_1 = require("./repository/role.repository.module");
8
+ let RoleModule = class RoleModule {
9
+ };
10
+ exports.RoleModule = RoleModule;
11
+ exports.RoleModule = RoleModule = tslib_1.__decorate([
12
+ (0, common_1.Global)(),
13
+ (0, common_1.Module)({
14
+ controllers: [],
15
+ providers: [role_service_1.RoleService],
16
+ exports: [role_service_1.RoleService],
17
+ imports: [role_repository_module_1.RoleRepositoryModule],
18
+ })
19
+ ], RoleModule);
20
+ //# sourceMappingURL=role.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.module.js","sourceRoot":"","sources":["../../../../packages/role/src/role.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAgD;AAChD,0DAAsD;AACtD,gFAA2E;AASpE,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAPtB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;QACtB,OAAO,EAAE,CAAC,6CAAoB,CAAC;KAChC,CAAC;GACW,UAAU,CAAG"}
@@ -0,0 +1,3 @@
1
+ export * from './role.access-for.serialization';
2
+ export * from './role.get.serialization';
3
+ export * from './role.list.serialization';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./role.access-for.serialization"), exports);
5
+ tslib_1.__exportStar(require("./role.get.serialization"), exports);
6
+ tslib_1.__exportStar(require("./role.list.serialization"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/role/src/serializations/index.ts"],"names":[],"mappings":";;;AAAA,0EAAgD;AAChD,mEAAyC;AACzC,oEAA0C"}
@@ -0,0 +1,3 @@
1
+ export declare class RoleAccessForSerialization {
2
+ groups: string[];
3
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleAccessForSerialization = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const authentication_1 = require("@tc-libs/authentication");
6
+ const swagger_1 = require("@nestjs/swagger");
7
+ class RoleAccessForSerialization {
8
+ }
9
+ exports.RoleAccessForSerialization = RoleAccessForSerialization;
10
+ tslib_1.__decorate([
11
+ (0, swagger_1.ApiProperty)({
12
+ description: 'Access for role',
13
+ example: [authentication_1.ENUM_AUTH_ACCESS_FOR.USER, authentication_1.ENUM_AUTH_ACCESS_FOR.ADMIN],
14
+ required: true,
15
+ }),
16
+ tslib_1.__metadata("design:type", Array)
17
+ ], RoleAccessForSerialization.prototype, "groups", void 0);
18
+ //# sourceMappingURL=role.access-for.serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.access-for.serialization.js","sourceRoot":"","sources":["../../../../../packages/role/src/serializations/role.access-for.serialization.ts"],"names":[],"mappings":";;;;AAAA,4DAA+D;AAC/D,6CAA8C;AAE9C,MAAa,0BAA0B;CAOtC;AAPD,gEAOC;AADC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,CAAC,qCAAoB,CAAC,IAAI,EAAE,qCAAoB,CAAC,KAAK,CAAC;QAChE,QAAQ,EAAE,IAAI;KACf,CAAC;;0DACe"}
@@ -0,0 +1,11 @@
1
+ import { ENUM_AUTH_ACCESS_FOR } from '@tc-libs/authentication';
2
+ import { PermissionGetSerialization } from '@tc-libs/permission';
3
+ import { ResponseIdSerialization } from '@tc-libs/response';
4
+ export declare class RoleGetSerialization extends ResponseIdSerialization {
5
+ readonly active: boolean;
6
+ readonly name: string;
7
+ readonly accessFor: ENUM_AUTH_ACCESS_FOR;
8
+ readonly permissions: PermissionGetSerialization[];
9
+ readonly createdAt: Date;
10
+ readonly updatedAt: Date;
11
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleGetSerialization = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const authentication_1 = require("@tc-libs/authentication");
6
+ const permission_1 = require("@tc-libs/permission");
7
+ const response_1 = require("@tc-libs/response");
8
+ const faker_1 = require("@faker-js/faker");
9
+ const swagger_1 = require("@nestjs/swagger");
10
+ const class_transformer_1 = require("class-transformer");
11
+ class RoleGetSerialization extends response_1.ResponseIdSerialization {
12
+ }
13
+ exports.RoleGetSerialization = RoleGetSerialization;
14
+ tslib_1.__decorate([
15
+ (0, swagger_1.ApiProperty)({
16
+ description: 'Active flag of role',
17
+ example: true,
18
+ required: true,
19
+ }),
20
+ tslib_1.__metadata("design:type", Boolean)
21
+ ], RoleGetSerialization.prototype, "active", void 0);
22
+ tslib_1.__decorate([
23
+ (0, swagger_1.ApiProperty)({
24
+ description: 'Alias name of role',
25
+ example: faker_1.faker.person.jobTitle(),
26
+ required: true,
27
+ }),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], RoleGetSerialization.prototype, "name", void 0);
30
+ tslib_1.__decorate([
31
+ (0, swagger_1.ApiProperty)({
32
+ description: 'Representative for role',
33
+ example: 'ADMIN',
34
+ required: true,
35
+ }),
36
+ tslib_1.__metadata("design:type", String)
37
+ ], RoleGetSerialization.prototype, "accessFor", void 0);
38
+ tslib_1.__decorate([
39
+ (0, swagger_1.ApiProperty)({
40
+ description: 'List of permission',
41
+ type: () => permission_1.PermissionGetSerialization,
42
+ isArray: true,
43
+ required: true,
44
+ }),
45
+ (0, class_transformer_1.Type)(() => permission_1.PermissionGetSerialization),
46
+ tslib_1.__metadata("design:type", Array)
47
+ ], RoleGetSerialization.prototype, "permissions", void 0);
48
+ tslib_1.__decorate([
49
+ (0, swagger_1.ApiProperty)({
50
+ description: 'Date created at',
51
+ example: faker_1.faker.date.recent(),
52
+ required: true,
53
+ }),
54
+ tslib_1.__metadata("design:type", Date)
55
+ ], RoleGetSerialization.prototype, "createdAt", void 0);
56
+ tslib_1.__decorate([
57
+ (0, swagger_1.ApiProperty)({
58
+ description: 'Date updated at',
59
+ example: faker_1.faker.date.recent(),
60
+ required: false,
61
+ }),
62
+ tslib_1.__metadata("design:type", Date)
63
+ ], RoleGetSerialization.prototype, "updatedAt", void 0);
64
+ //# sourceMappingURL=role.get.serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.get.serialization.js","sourceRoot":"","sources":["../../../../../packages/role/src/serializations/role.get.serialization.ts"],"names":[],"mappings":";;;;AAAA,4DAA+D;AAC/D,oDAAiE;AACjE,gDAA4D;AAC5D,2CAAwC;AACxC,6CAA8C;AAC9C,yDAAyC;AAEzC,MAAa,oBAAqB,SAAQ,kCAAuB;CA4ChE;AA5CD,oDA4CC;AAtCU;IALR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;;oDACuB;AAOhB;IALR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,aAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,IAAI;KACf,CAAC;;kDACoB;AAOb;IALR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC;;uDACuC;AAShC;IAPR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,GAAG,EAAE,CAAC,uCAA0B;QACtC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uCAA0B,CAAC;;yDACY;AAO1C;IALR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,aAAK,CAAC,IAAI,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,IAAI;KACf,CAAC;sCACkB,IAAI;uDAAC;AAOhB;IALR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,aAAK,CAAC,IAAI,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,KAAK;KAChB,CAAC;sCACkB,IAAI;uDAAC"}
@@ -0,0 +1,6 @@
1
+ import { RoleGetSerialization } from './role.get.serialization';
2
+ declare const RoleListSerialization_base: import("@nestjs/common").Type<Omit<RoleGetSerialization, "permissions">>;
3
+ export declare class RoleListSerialization extends RoleListSerialization_base {
4
+ readonly permissions: number;
5
+ }
6
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleListSerialization = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const faker_1 = require("@faker-js/faker");
6
+ const swagger_1 = require("@nestjs/swagger");
7
+ const class_transformer_1 = require("class-transformer");
8
+ const role_get_serialization_1 = require("./role.get.serialization");
9
+ class RoleListSerialization extends (0, swagger_1.OmitType)(role_get_serialization_1.RoleGetSerialization, [
10
+ 'permissions',
11
+ ]) {
12
+ }
13
+ exports.RoleListSerialization = RoleListSerialization;
14
+ tslib_1.__decorate([
15
+ (0, swagger_1.ApiProperty)({
16
+ description: 'Count of permissions',
17
+ example: faker_1.faker.string.numeric(2),
18
+ required: true,
19
+ }),
20
+ (0, class_transformer_1.Transform)(({ value }) => value.length),
21
+ tslib_1.__metadata("design:type", Number)
22
+ ], RoleListSerialization.prototype, "permissions", void 0);
23
+ //# sourceMappingURL=role.list.serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.list.serialization.js","sourceRoot":"","sources":["../../../../../packages/role/src/serializations/role.list.serialization.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6CAAwD;AACxD,yDAA8C;AAC9C,qEAAgE;AAEhE,MAAa,qBAAsB,SAAQ,IAAA,kBAAQ,EAAC,6CAAoB,EAAE;IACxE,aAAa;CACL,CAAC;CAQV;AAVD,sDAUC;AADU;IANR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAChC,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;;0DACV"}
@@ -0,0 +1,24 @@
1
+ import { AbstractService } from '@tc-libs/service';
2
+ import { Logger } from '@nestjs/common';
3
+ import { IRoleDoc } from '../interfaces/role.interface';
4
+ import { IDatabaseFindOneOptions, IDatabaseExistOptions, IDatabaseCreateOptions } from '@tc-libs/database';
5
+ import { PaginationService } from '@tc-libs/pagination';
6
+ import { RoleUpdateNameDto } from '../dtos/role.update-name.dto';
7
+ import { RoleUpdatePermissionDto } from '../dtos/role.update-permission.dto';
8
+ import { RoleEntity, RoleDoc } from '../repository/entities/role.entity';
9
+ import { RoleRepository } from '../repository/repositories/role.repository';
10
+ export declare class RoleService extends AbstractService<RoleEntity, RoleDoc> {
11
+ protected readonly _paging: PaginationService;
12
+ private readonly roleRepository;
13
+ logger: Logger;
14
+ constructor(_paging: PaginationService, roleRepository: RoleRepository);
15
+ findOneByName<T>(name: string, options?: IDatabaseFindOneOptions): Promise<T>;
16
+ existByName(name: string, options?: IDatabaseExistOptions): Promise<boolean>;
17
+ createSuperAdmin(options?: IDatabaseCreateOptions): Promise<RoleDoc>;
18
+ updateName(repository: RoleDoc, { name }: RoleUpdateNameDto): Promise<RoleDoc>;
19
+ joinWithPermission(repository: RoleDoc): Promise<IRoleDoc>;
20
+ updatePermission(repository: RoleDoc, { accessFor, permissions }: RoleUpdatePermissionDto): Promise<RoleDoc>;
21
+ active(repository: RoleDoc): Promise<RoleDoc>;
22
+ inactive(repository: RoleDoc): Promise<RoleDoc>;
23
+ getAccessFor(): Promise<string[]>;
24
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var RoleService_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RoleService = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const service_1 = require("@tc-libs/service");
7
+ const common_1 = require("@nestjs/common");
8
+ const authentication_1 = require("@tc-libs/authentication");
9
+ const pagination_1 = require("@tc-libs/pagination");
10
+ const permission_1 = require("@tc-libs/permission");
11
+ const role_entity_1 = require("../repository/entities/role.entity");
12
+ const role_repository_1 = require("../repository/repositories/role.repository");
13
+ let RoleService = RoleService_1 = class RoleService extends service_1.AbstractService {
14
+ constructor(_paging, roleRepository) {
15
+ super(roleRepository, _paging);
16
+ this._paging = _paging;
17
+ this.roleRepository = roleRepository;
18
+ this.logger = new common_1.Logger(RoleService_1.name);
19
+ }
20
+ async findOneByName(name, options) {
21
+ return this.roleRepository.findOne({ name }, options);
22
+ }
23
+ async existByName(name, options) {
24
+ return this.roleRepository.exists({
25
+ name,
26
+ }, { ...options });
27
+ }
28
+ async createSuperAdmin(options) {
29
+ const create = new role_entity_1.RoleEntity();
30
+ create.name = 'superadmin';
31
+ create.permissions = [];
32
+ create.active = true;
33
+ create.accessFor = authentication_1.ENUM_AUTH_ACCESS_FOR.SUPER_ADMIN;
34
+ return this.roleRepository.create(create, options);
35
+ }
36
+ async updateName(repository, { name }) {
37
+ repository.name = name;
38
+ return this.roleRepository.save(repository);
39
+ }
40
+ async joinWithPermission(repository) {
41
+ return repository.populate({
42
+ path: 'permissions',
43
+ localField: 'permissions',
44
+ foreignField: '_id',
45
+ model: permission_1.PermissionEntity.name,
46
+ });
47
+ }
48
+ async updatePermission(repository, { accessFor, permissions }) {
49
+ repository.accessFor = accessFor;
50
+ repository.permissions = permissions;
51
+ return this.roleRepository.save(repository);
52
+ }
53
+ async active(repository) {
54
+ repository.active = true;
55
+ return this.roleRepository.save(repository);
56
+ }
57
+ async inactive(repository) {
58
+ repository.active = false;
59
+ return this.roleRepository.save(repository);
60
+ }
61
+ async getAccessFor() {
62
+ return Object.values(authentication_1.ENUM_AUTH_ACCESS_FOR_DEFAULT);
63
+ }
64
+ };
65
+ exports.RoleService = RoleService;
66
+ exports.RoleService = RoleService = RoleService_1 = tslib_1.__decorate([
67
+ (0, common_1.Injectable)(),
68
+ tslib_1.__metadata("design:paramtypes", [pagination_1.PaginationService,
69
+ role_repository_1.RoleRepository])
70
+ ], RoleService);
71
+ //# sourceMappingURL=role.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../../packages/role/src/services/role.service.ts"],"names":[],"mappings":";;;;;AAAA,8CAAmD;AACnD,2CAAoD;AAEpD,4DAGiC;AAOjC,oDAAwD;AACxD,oDAAuD;AAGvD,oEAAyE;AACzE,gFAA4E;AAGrE,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,yBAAoC;IAEnE,YACqB,OAA0B,EAC5B,cAA8B;QAE/C,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAHZ,YAAO,GAAP,OAAO,CAAmB;QAC5B,mBAAc,GAAd,cAAc,CAAgB;QAHjD,WAAM,GAAW,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;IAM9C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,OAAiC;QAEjC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,OAA+B;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAC/B;YACE,IAAI;SACL,EACD,EAAE,GAAG,OAAO,EAAE,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QACrD,MAAM,MAAM,GAAe,IAAI,wBAAU,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,SAAS,GAAG,qCAAoB,CAAC,WAAW,CAAC;QAEpD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAU,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAmB,EACnB,EAAE,IAAI,EAAqB;QAE3B,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QAEvB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAmB;QAC1C,OAAO,UAAU,CAAC,QAAQ,CAAC;YACzB,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,aAAa;YACzB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,6BAAgB,CAAC,IAAI;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,UAAmB,EACnB,EAAE,SAAS,EAAE,WAAW,EAA2B;QAEnD,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;QAErC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAmB;QAC9B,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;QAEzB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAmB;QAChC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,6CAA4B,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAjFY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;6CAImB,8BAAiB;QACZ,gCAAc;GAJtC,WAAW,CAiFvB"}