@tomei/sso 0.50.0 → 0.50.2

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 (134) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc +16 -16
  3. package/.eslintrc.js +35 -35
  4. package/.gitlab-ci.yml +16 -16
  5. package/.husky/commit-msg +15 -15
  6. package/.husky/pre-commit +7 -7
  7. package/.prettierrc +4 -4
  8. package/Jenkinsfile +57 -57
  9. package/README.md +23 -23
  10. package/__tests__/unit/components/group/group.spec.ts +79 -79
  11. package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
  12. package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
  13. package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
  14. package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
  15. package/__tests__/unit/components/login-user/l.spec.ts +746 -746
  16. package/__tests__/unit/components/login-user/login.spec.ts +1164 -1164
  17. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  18. package/__tests__/unit/components/system/system.spec.ts +254 -254
  19. package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
  20. package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
  21. package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
  22. package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
  23. package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
  24. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  25. package/__tests__/unit/session/session.service.spec.ts +47 -47
  26. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  27. package/coverage/clover.xml +1452 -1452
  28. package/coverage/coverage-final.json +47 -47
  29. package/coverage/lcov-report/base.css +224 -224
  30. package/coverage/lcov-report/block-navigation.js +87 -87
  31. package/coverage/lcov-report/components/group/group.repository.ts.html +117 -117
  32. package/coverage/lcov-report/components/group/group.ts.html +327 -327
  33. package/coverage/lcov-report/components/group/index.html +130 -130
  34. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +117 -117
  35. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +321 -321
  36. package/coverage/lcov-report/components/group-object-privilege/index.html +130 -130
  37. package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +117 -117
  38. package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +303 -303
  39. package/coverage/lcov-report/components/group-privilege/index.html +130 -130
  40. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.repository.ts.html +117 -117
  41. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.ts.html +327 -327
  42. package/coverage/lcov-report/components/group-reporting-user/index.html +130 -130
  43. package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +117 -117
  44. package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +309 -309
  45. package/coverage/lcov-report/components/group-system-access/index.html +130 -130
  46. package/coverage/lcov-report/components/login-history/index.html +115 -115
  47. package/coverage/lcov-report/components/login-history/login-history.repository.ts.html +117 -117
  48. package/coverage/lcov-report/components/login-user/index.html +130 -130
  49. package/coverage/lcov-report/components/login-user/login-user.ts.html +5007 -5007
  50. package/coverage/lcov-report/components/login-user/user.repository.ts.html +117 -117
  51. package/coverage/lcov-report/components/password-hash/index.html +115 -115
  52. package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +126 -126
  53. package/coverage/lcov-report/components/system/index.html +130 -130
  54. package/coverage/lcov-report/components/system/system.repository.ts.html +117 -117
  55. package/coverage/lcov-report/components/system/system.ts.html +909 -909
  56. package/coverage/lcov-report/components/system-privilege/index.html +130 -130
  57. package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +120 -120
  58. package/coverage/lcov-report/components/system-privilege/system-privilege.ts.html +390 -390
  59. package/coverage/lcov-report/components/user-group/index.html +130 -130
  60. package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +117 -117
  61. package/coverage/lcov-report/components/user-group/user-group.ts.html +354 -354
  62. package/coverage/lcov-report/components/user-object-privilege/index.html +130 -130
  63. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +117 -117
  64. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +312 -312
  65. package/coverage/lcov-report/components/user-privilege/index.html +130 -130
  66. package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +117 -117
  67. package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +306 -306
  68. package/coverage/lcov-report/components/user-system-access/index.html +130 -130
  69. package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +117 -117
  70. package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +312 -312
  71. package/coverage/lcov-report/enum/group-type.enum.ts.html +108 -108
  72. package/coverage/lcov-report/enum/index.html +160 -160
  73. package/coverage/lcov-report/enum/index.ts.html +93 -93
  74. package/coverage/lcov-report/enum/user-status.enum.ts.html +105 -105
  75. package/coverage/lcov-report/enum/yn.enum.ts.html +96 -96
  76. package/coverage/lcov-report/index.html +370 -370
  77. package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +333 -333
  78. package/coverage/lcov-report/models/group-privilege.entity.ts.html +315 -315
  79. package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +339 -339
  80. package/coverage/lcov-report/models/group-system-access.entity.ts.html +324 -324
  81. package/coverage/lcov-report/models/group.entity.ts.html +435 -435
  82. package/coverage/lcov-report/models/index.html +310 -310
  83. package/coverage/lcov-report/models/login-history.entity.ts.html +252 -252
  84. package/coverage/lcov-report/models/staff.entity.ts.html +411 -411
  85. package/coverage/lcov-report/models/system-privilege.entity.ts.html +354 -354
  86. package/coverage/lcov-report/models/system.entity.ts.html +423 -423
  87. package/coverage/lcov-report/models/user-group.entity.ts.html +354 -354
  88. package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +330 -330
  89. package/coverage/lcov-report/models/user-privilege.entity.ts.html +315 -315
  90. package/coverage/lcov-report/models/user-system-access.entity.ts.html +315 -315
  91. package/coverage/lcov-report/models/user.entity.ts.html +522 -522
  92. package/coverage/lcov-report/prettify.css +1 -1
  93. package/coverage/lcov-report/prettify.js +2 -2
  94. package/coverage/lcov-report/redis-client/index.html +115 -115
  95. package/coverage/lcov-report/redis-client/redis.service.ts.html +240 -240
  96. package/coverage/lcov-report/session/index.html +115 -115
  97. package/coverage/lcov-report/session/session.service.ts.html +246 -246
  98. package/coverage/lcov-report/sorter.js +196 -196
  99. package/coverage/lcov.info +2490 -2490
  100. package/coverage/test-report.xml +128 -128
  101. package/create-sso-user.sql +39 -39
  102. package/dist/src/components/system-privilege/system-privilege.d.ts +16 -0
  103. package/dist/src/components/system-privilege/system-privilege.js +54 -0
  104. package/dist/src/components/system-privilege/system-privilege.js.map +1 -1
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/jest.config.js +14 -14
  107. package/migrations/20240314080602-create-user-table.js +124 -124
  108. package/migrations/20240314080603-create-user-group-table.js +85 -85
  109. package/migrations/20240314080604-create-user-user-group-table.js +55 -55
  110. package/migrations/20240314080605-create-login-history-table.js +53 -53
  111. package/migrations/20240527064925-create-system-table.js +78 -78
  112. package/migrations/20240527064926-create-system-privilege-table.js +71 -71
  113. package/migrations/20240527065342-create-group-table.js +93 -93
  114. package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
  115. package/migrations/20240528011551-create-group-system-access-table.js +72 -72
  116. package/migrations/20240528023018-user-system-access-table.js +75 -75
  117. package/migrations/20240528032229-user-privilege-table.js +75 -75
  118. package/migrations/20240528063003-create-group-privilege-table.js +85 -85
  119. package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
  120. package/migrations/20240528063107-create-user-object-privilege-table.js +83 -83
  121. package/migrations/20240528063108-create-api-key-table.js +85 -85
  122. package/migrations/20241104104802-create-building-table.js +102 -0
  123. package/package.json +89 -89
  124. package/sampledotenv +7 -7
  125. package/sonar-project.properties +22 -22
  126. package/src/components/system-privilege/system-privilege.ts +90 -0
  127. package/tsconfig.build.json +5 -5
  128. package/tsconfig.json +22 -22
  129. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.d.ts +0 -1
  130. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +0 -71
  131. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +0 -1
  132. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
  133. package/dist/__tests__/unit/components/login-user/login-user.spec.js +0 -6
  134. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +0 -1
package/package.json CHANGED
@@ -1,89 +1,89 @@
1
- {
2
- "name": "@tomei/sso",
3
- "version": "0.50.0",
4
- "description": "Tomei SSO Package",
5
- "main": "dist/index.js",
6
- "scripts": {
7
- "start:dev": "tsc -w",
8
- "build": "tsc",
9
- "prepare": "husky install",
10
- "format": "prettier --write \"src/**/*.ts\"",
11
- "lint": "npx eslint . --fix",
12
- "test": "jest --forceExit --detectOpenHandles --coverage"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+ssh://git@gitlab.com/tomei-package/sso.git"
17
- },
18
- "keywords": [
19
- "tomei",
20
- "sso"
21
- ],
22
- "author": "Tomei",
23
- "license": "ISC",
24
- "bugs": {
25
- "url": "https://gitlab.com/tomei-package/sso/issues"
26
- },
27
- "homepage": "https://gitlab.com/tomei-package/sso#readme",
28
- "devDependencies": {
29
- "@commitlint/cli": "^17.6.3",
30
- "@commitlint/config-conventional": "^17.6.3",
31
- "@tsconfig/node18": "^2.0.1",
32
- "@types/bcrypt": "^5.0.0",
33
- "@types/jest": "^29.5.2",
34
- "@types/node": "^18.17.5",
35
- "@types/redis": "^4.0.11",
36
- "@types/validator": "^13.11.1",
37
- "@typescript-eslint/eslint-plugin": "^5.33.0",
38
- "@typescript-eslint/parser": "^5.0.0",
39
- "dotenv": "^16.1.4",
40
- "eslint": "^8.40.0",
41
- "eslint-config-prettier": "^8.5.0",
42
- "eslint-plugin-prettier": "^4.2.1",
43
- "husky": "^8.0.3",
44
- "jest": "^29.5.0",
45
- "jest-mock-extended": "^3.0.4",
46
- "jest-sonar-reporter": "^2.0.0",
47
- "lint-staged": "^13.2.2",
48
- "prettier": "^2.7.1",
49
- "prisma": "^4.14.0",
50
- "redis-mock": "^0.56.3",
51
- "sequelize-cli": "^6.6.2",
52
- "ts-jest": "^29.1.0",
53
- "ts-node": "^10.9.1",
54
- "tsc-watch": "^5.0.3",
55
- "tsconfig-paths": "^4.0.0",
56
- "tslint": "^6.1.3",
57
- "typescript": "^4.7.4"
58
- },
59
- "publishConfig": {
60
- "access": "public"
61
- },
62
- "peerDependencies": {
63
- "@tomei/activity-history": "^0.2.19",
64
- "@tomei/config": "^0.3.12",
65
- "@tomei/general": "^0.15.2",
66
- "@tomei/mailer": "^0.5.15",
67
- "argon2": "^0.30.3",
68
- "cls-hooked": "^4.2.2",
69
- "cuid": "^3.0.0",
70
- "nodemailer": "^6.9.3",
71
- "redis": "^4.6.7",
72
- "reflect-metadata": "^0.1.13",
73
- "sequelize": "^6.37.3",
74
- "sequelize-typescript": "^2.1.6",
75
- "speakeasy": "^2.0.0",
76
- "uuid": "^10.0.0"
77
- },
78
- "lint-staged": {
79
- "*/**/*.{js,ts,tsx}": [
80
- "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
81
- "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
82
- ]
83
- },
84
- "jestSonar": {
85
- "reportPath": "coverage",
86
- "reportFile": "test-report.xml",
87
- "indent": 2
88
- }
89
- }
1
+ {
2
+ "name": "@tomei/sso",
3
+ "version": "0.50.2",
4
+ "description": "Tomei SSO Package",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "start:dev": "tsc -w",
8
+ "build": "tsc",
9
+ "prepare": "husky install",
10
+ "format": "prettier --write \"src/**/*.ts\"",
11
+ "lint": "npx eslint . --fix",
12
+ "test": "jest --forceExit --detectOpenHandles --coverage"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+ssh://git@gitlab.com/tomei-package/sso.git"
17
+ },
18
+ "keywords": [
19
+ "tomei",
20
+ "sso"
21
+ ],
22
+ "author": "Tomei",
23
+ "license": "ISC",
24
+ "bugs": {
25
+ "url": "https://gitlab.com/tomei-package/sso/issues"
26
+ },
27
+ "homepage": "https://gitlab.com/tomei-package/sso#readme",
28
+ "devDependencies": {
29
+ "@commitlint/cli": "^17.6.3",
30
+ "@commitlint/config-conventional": "^17.6.3",
31
+ "@tsconfig/node18": "^2.0.1",
32
+ "@types/bcrypt": "^5.0.0",
33
+ "@types/jest": "^29.5.2",
34
+ "@types/node": "^18.17.5",
35
+ "@types/redis": "^4.0.11",
36
+ "@types/validator": "^13.11.1",
37
+ "@typescript-eslint/eslint-plugin": "^5.33.0",
38
+ "@typescript-eslint/parser": "^5.0.0",
39
+ "dotenv": "^16.1.4",
40
+ "eslint": "^8.40.0",
41
+ "eslint-config-prettier": "^8.5.0",
42
+ "eslint-plugin-prettier": "^4.2.1",
43
+ "husky": "^8.0.3",
44
+ "jest": "^29.5.0",
45
+ "jest-mock-extended": "^3.0.4",
46
+ "jest-sonar-reporter": "^2.0.0",
47
+ "lint-staged": "^13.2.2",
48
+ "prettier": "^2.7.1",
49
+ "prisma": "^4.14.0",
50
+ "redis-mock": "^0.56.3",
51
+ "sequelize-cli": "^6.6.2",
52
+ "ts-jest": "^29.1.0",
53
+ "ts-node": "^10.9.1",
54
+ "tsc-watch": "^5.0.3",
55
+ "tsconfig-paths": "^4.0.0",
56
+ "tslint": "^6.1.3",
57
+ "typescript": "^4.7.4"
58
+ },
59
+ "publishConfig": {
60
+ "access": "public"
61
+ },
62
+ "peerDependencies": {
63
+ "@tomei/activity-history": "^0.2.19",
64
+ "@tomei/config": "^0.3.12",
65
+ "@tomei/general": "^0.15.2",
66
+ "@tomei/mailer": "^0.5.15",
67
+ "argon2": "^0.30.3",
68
+ "cls-hooked": "^4.2.2",
69
+ "cuid": "^3.0.0",
70
+ "nodemailer": "^6.9.3",
71
+ "redis": "^4.6.7",
72
+ "reflect-metadata": "^0.1.13",
73
+ "sequelize": "^6.37.3",
74
+ "sequelize-typescript": "^2.1.6",
75
+ "speakeasy": "^2.0.0",
76
+ "uuid": "^10.0.0"
77
+ },
78
+ "lint-staged": {
79
+ "*/**/*.{js,ts,tsx}": [
80
+ "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
81
+ "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
82
+ ]
83
+ },
84
+ "jestSonar": {
85
+ "reportPath": "coverage",
86
+ "reportFile": "test-report.xml",
87
+ "indent": 2
88
+ }
89
+ }
package/sampledotenv CHANGED
@@ -1,8 +1,8 @@
1
- DATABASE_URL=
2
- SHADOW_DATABASE_URL=
3
- REDIS_URL=
4
- REDIS_PASSWORD=
5
- SMTP_HOST=
6
- SMTP_PORT=
7
- EMAIL_SENDER=
1
+ DATABASE_URL=
2
+ SHADOW_DATABASE_URL=
3
+ REDIS_URL=
4
+ REDIS_PASSWORD=
5
+ SMTP_HOST=
6
+ SMTP_PORT=
7
+ EMAIL_SENDER=
8
8
  EMAIL_PASSWORD=
@@ -1,23 +1,23 @@
1
- sonar.projectKey=all-tomei-projects_sso
2
- sonar.organization=all-tomei-projects
3
- sonar.exclusions=**/*.js,test-data,dist,coverage, node_modules, __tests__, **/*.spec.ts, __mocks__
4
- sonar.scm.provider=git
5
-
6
- sonar.sources=src
7
- sonar.test=__tests__
8
- sonar.test.inclusions=src/**/*.spec.ts
9
-
10
- sonar.javascript.lcov.reportPaths=./coverage/lcov.info
11
- sonar.testExecutionReportPaths=coverage/test-report.xml
12
- sonar.sourceEnconding=UTF-8
13
-
14
- # This is the name and version displayed in the SonarCloud UI.
15
- #sonar.projectName=sso
16
- #sonar.projectVersion=1.0
17
-
18
-
19
- # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
20
- #sonar.sources=.
21
-
22
- # Encoding of the source code. Default is default system encoding
1
+ sonar.projectKey=all-tomei-projects_sso
2
+ sonar.organization=all-tomei-projects
3
+ sonar.exclusions=**/*.js,test-data,dist,coverage, node_modules, __tests__, **/*.spec.ts, __mocks__
4
+ sonar.scm.provider=git
5
+
6
+ sonar.sources=src
7
+ sonar.test=__tests__
8
+ sonar.test.inclusions=src/**/*.spec.ts
9
+
10
+ sonar.javascript.lcov.reportPaths=./coverage/lcov.info
11
+ sonar.testExecutionReportPaths=coverage/test-report.xml
12
+ sonar.sourceEnconding=UTF-8
13
+
14
+ # This is the name and version displayed in the SonarCloud UI.
15
+ #sonar.projectName=sso
16
+ #sonar.projectVersion=1.0
17
+
18
+
19
+ # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
20
+ #sonar.sources=.
21
+
22
+ # Encoding of the source code. Default is default system encoding
23
23
  #sonar.sourceEncoding=UTF-8
@@ -379,6 +379,96 @@ export class SystemPrivilege extends ObjectBase {
379
379
  }
380
380
  }
381
381
 
382
+ public async update(
383
+ loginUser: LoginUser, //The user object representing the currently logged-in user.
384
+ dbTransaction: any, //The database transaction instance for managing the transaction scope.
385
+ privilege: {
386
+ PrivilegeCode?: string;
387
+ Description?: string;
388
+ SystemCode?: string; //The System Code for System Privilege
389
+ Status?: string; //The new privilege status (Active/Inactive) for the system privilege
390
+ },
391
+ ) {
392
+ try {
393
+ // Part 1: Update System Privilege
394
+ // Call the SystemPrivilege._Repo.update() method to perform the update operation, passing:
395
+ // - SystemCode: The new SystemCode.
396
+ // - Status: The new status.
397
+ // - UpdatedById: loginUser.UserId (to indicate who updated the record).
398
+ // - UpdatedAt: Set to the current date and time.
399
+ // - dbTransaction: The database transaction instance.
400
+ const entityValueBefore = {
401
+ SystemPrivilegeId: this.SystemPrivilegeId,
402
+ Description: this.Description,
403
+ PrivilegeCode: this.PrivilegeCode,
404
+ SystemCode: this.SystemCode,
405
+ Status: this.Status,
406
+ CreatedById: this.CreatedById,
407
+ CreatedAt: this.CreatedAt,
408
+ UpdatedById: this.UpdatedById,
409
+ UpdatedAt: this.UpdatedAt,
410
+ };
411
+
412
+ await SystemPrivilege._Repository.update(
413
+ {
414
+ PrivilegeCode: privilege.PrivilegeCode || this.PrivilegeCode,
415
+ Description: privilege.Description || this.Description,
416
+ SystemCode: privilege.SystemCode || this.SystemCode,
417
+ Status: privilege.Status || this.Status,
418
+ UpdatedById: loginUser.UserId,
419
+ UpdatedAt: new Date(),
420
+ },
421
+ {
422
+ where: {
423
+ SystemPrivilegeId: this.SystemPrivilegeId,
424
+ },
425
+ transaction: dbTransaction,
426
+ },
427
+ );
428
+
429
+ const entityValueAfter = {
430
+ SystemPrivilegeId: this.SystemPrivilegeId,
431
+ PrivilegeCode: privilege.PrivilegeCode || this.PrivilegeCode,
432
+ Description: privilege.Description || this.Description,
433
+ SystemCode: privilege.SystemCode || this.SystemCode,
434
+ Status: privilege.Status || this.Status,
435
+ CreatedById: this.CreatedById,
436
+ CreatedAt: this.CreatedAt,
437
+ UpdatedById: this.UpdatedById,
438
+ UpdatedAt: this.UpdatedAt,
439
+ };
440
+
441
+ // Part 2: Record Activity History
442
+ // Initialize a variable entityValueBefore to store the current state of the user privilege record before the update.
443
+ // Create an instance of the Activity class and set the following properties:
444
+ // - ActivityId: Call activity.createId().
445
+ // - Action: Set to ActionEnum.Update.
446
+ // - Description: Set to Update System Privilege.
447
+ // - EntityType: Set to SystemPrivilege.
448
+ // - EntityId: Use the ID of the updated user privilege record.
449
+ // - EntityValueBefore: Stringify entityValueBefore to capture the state before the update.
450
+ // - EntityValueAfter: Stringify the updated user privilege record to capture the new state after the update.
451
+ // Call the activity create method with the following parameters:
452
+ // - dbTransaction
453
+ // - userId: loginUser.UserId
454
+ const activity = new Activity();
455
+ activity.ActivityId = activity.createId();
456
+ activity.Action = ActionEnum.UPDATE;
457
+ activity.Description = 'Update System Privilege';
458
+ activity.EntityType = 'SystemPrivilege';
459
+ activity.EntityId = this.SystemPrivilegeId + '';
460
+ activity.EntityValueBefore = JSON.stringify(entityValueBefore);
461
+ activity.EntityValueAfter = JSON.stringify(entityValueAfter);
462
+ await activity.create(loginUser.ObjectId, dbTransaction);
463
+
464
+ // Part 3: Return Updated Record
465
+ // Retrieve the updated user system access record from the database or return the updated instance as needed.
466
+ return entityValueAfter;
467
+ } catch (error) {
468
+ throw error;
469
+ }
470
+ }
471
+
382
472
  public async delete(dbTransaction: any, loginUser: LoginUser) {
383
473
  try {
384
474
  //Part 1: Privilege Checking
@@ -1,6 +1,6 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": ["**/*.ts"],
4
- "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["**/*.ts"],
4
+ "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
+ }
6
6
 
package/tsconfig.json CHANGED
@@ -1,23 +1,23 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "moduleResolution": "node",
10
- "target": "es6",
11
- "sourceMap": true,
12
- "outDir": "./dist",
13
- "baseUrl": "./src",
14
- "rootDir": "./",
15
- "incremental": true,
16
- "skipLibCheck": true,
17
- "noImplicitAny": false,
18
- "strictBindCallApply": false,
19
- "forceConsistentCasingInFileNames": false,
20
- "noFallthroughCasesInSwitch": false,
21
- "strictNullChecks": false,
22
- },
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "moduleResolution": "node",
10
+ "target": "es6",
11
+ "sourceMap": true,
12
+ "outDir": "./dist",
13
+ "baseUrl": "./src",
14
+ "rootDir": "./",
15
+ "incremental": true,
16
+ "skipLibCheck": true,
17
+ "noImplicitAny": false,
18
+ "strictBindCallApply": false,
19
+ "forceConsistentCasingInFileNames": false,
20
+ "noFallthroughCasesInSwitch": false,
21
+ "strictNullChecks": false,
22
+ },
23
23
  }
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const group_privilege_1 = require("../../../../src/components/group-privilege/group-privilege");
13
- const group_privilege_repository_1 = require("../../../../src/components/group-privilege/group-privilege.repository");
14
- const general_1 = require("@tomei/general");
15
- describe('GroupPrivilege', () => {
16
- afterEach(() => {
17
- jest.restoreAllMocks();
18
- });
19
- it('should initialize with GroupPrivilegeAttr', () => __awaiter(void 0, void 0, void 0, function* () {
20
- const mockGroupPrivilegeAttr = {
21
- GroupPrivilegeId: 1,
22
- GroupCode: 'group1',
23
- PrivilegeCode: 'privilege1',
24
- Status: 'active',
25
- CreatedAt: new Date(),
26
- UpdatedAt: new Date(),
27
- CreatedById: 1,
28
- UpdatedById: 1,
29
- };
30
- const findOneMock = jest
31
- .spyOn(group_privilege_repository_1.GroupPrivilegeRepository.prototype, 'findOne')
32
- .mockResolvedValueOnce({ get: jest.fn().mockReturnValue(mockGroupPrivilegeAttr) });
33
- const groupPrivilege = yield group_privilege_1.GroupPrivilege.init(null, 1);
34
- expect(findOneMock).toBeCalledWith({
35
- where: { GroupPrivilegeId: 1 },
36
- transaction: null,
37
- });
38
- expect(groupPrivilege).toBeInstanceOf(group_privilege_1.GroupPrivilege);
39
- expect(groupPrivilege.GroupPrivilegeId).toEqual(mockGroupPrivilegeAttr.GroupPrivilegeId);
40
- expect(groupPrivilege.GroupCode).toEqual(mockGroupPrivilegeAttr.GroupCode);
41
- expect(groupPrivilege.PrivilegeCode).toEqual(mockGroupPrivilegeAttr.PrivilegeCode);
42
- expect(groupPrivilege.Status).toEqual(mockGroupPrivilegeAttr.Status);
43
- expect(groupPrivilege.CreatedAt).toEqual(mockGroupPrivilegeAttr.CreatedAt);
44
- expect(groupPrivilege.UpdatedAt).toEqual(mockGroupPrivilegeAttr.UpdatedAt);
45
- expect(groupPrivilege.CreatedById).toEqual(mockGroupPrivilegeAttr.CreatedById);
46
- expect(groupPrivilege.UpdatedById).toEqual(mockGroupPrivilegeAttr.UpdatedById);
47
- }));
48
- it('should throw ClassError when GroupPrivilegeAttr is not found', () => __awaiter(void 0, void 0, void 0, function* () {
49
- const findOneMock = jest
50
- .spyOn(group_privilege_repository_1.GroupPrivilegeRepository.prototype, 'findOne')
51
- .mockResolvedValueOnce(null);
52
- yield expect(group_privilege_1.GroupPrivilege.init(null, 1)).rejects.toThrow(general_1.ClassError);
53
- expect(findOneMock).toBeCalledWith({
54
- where: { GroupPrivilegeId: 1 },
55
- transaction: null,
56
- });
57
- }));
58
- it('should initialize with default values', () => __awaiter(void 0, void 0, void 0, function* () {
59
- const groupPrivilege = yield group_privilege_1.GroupPrivilege.init();
60
- expect(groupPrivilege).toBeInstanceOf(group_privilege_1.GroupPrivilege);
61
- expect(groupPrivilege.GroupPrivilegeId).toBeUndefined();
62
- expect(groupPrivilege.GroupCode).toBeUndefined();
63
- expect(groupPrivilege.PrivilegeCode).toBeUndefined();
64
- expect(groupPrivilege.Status).toBeUndefined();
65
- expect(groupPrivilege.CreatedAt).toBeUndefined();
66
- expect(groupPrivilege.UpdatedAt).toBeUndefined();
67
- expect(groupPrivilege.CreatedById).toBeUndefined();
68
- expect(groupPrivilege.UpdatedById).toBeUndefined();
69
- }));
70
- });
71
- //# sourceMappingURL=group-privilege.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"group-privilege.test.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/group-privilege/group-privilege.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- describe('LoginUser', () => {
2
- it('should be true', () => {
3
- expect(true).toBe(true);
4
- });
5
- });
6
- //# sourceMappingURL=login-user.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login-user.spec.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/login-user/login-user.spec.ts"],"names":[],"mappings":"AAuuBA,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}