@flusys/nestjs-localization 7.0.2 → 8.0.0-beta.1

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 (117) hide show
  1. package/config/index.d.ts +3 -3
  2. package/controllers/index.d.ts +3 -3
  3. package/controllers/language.controller.d.ts +4 -4
  4. package/controllers/translation-key.controller.d.ts +3 -3
  5. package/controllers/translation.controller.d.ts +4 -4
  6. package/docs/index.d.ts +1 -1
  7. package/docs/localization-swagger.config.d.ts +1 -1
  8. package/dtos/index.d.ts +3 -3
  9. package/dtos/translation.dto.d.ts +2 -2
  10. package/entities/index.d.ts +6 -6
  11. package/entities/language.entity.d.ts +1 -1
  12. package/entities/translation-key.entity.d.ts +1 -1
  13. package/entities/translation.entity.d.ts +2 -2
  14. package/fesm/349.js +1179 -0
  15. package/fesm/692.js +1205 -0
  16. package/fesm/config/index.js +101 -3
  17. package/fesm/controllers/index.js +15 -3
  18. package/fesm/docs/index.js +126 -1
  19. package/fesm/dtos/index.js +680 -3
  20. package/fesm/entities/index.js +405 -8
  21. package/fesm/index.js +257 -7
  22. package/fesm/interfaces/index.js +18 -4
  23. package/fesm/modules/index.js +152 -1
  24. package/fesm/runtime.js +85 -0
  25. package/fesm/services/index.js +15 -5
  26. package/index.d.ts +7 -7
  27. package/interfaces/index.d.ts +4 -4
  28. package/interfaces/language.interface.d.ts +1 -1
  29. package/interfaces/localization-module-options.interface.d.ts +3 -3
  30. package/interfaces/translation-key.interface.d.ts +1 -1
  31. package/interfaces/translation.interface.d.ts +3 -3
  32. package/modules/index.d.ts +1 -1
  33. package/modules/localization.module.d.ts +2 -2
  34. package/package.json +25 -34
  35. package/services/index.d.ts +5 -5
  36. package/services/language.service.d.ts +6 -6
  37. package/services/localization-config.service.d.ts +3 -3
  38. package/services/localization-datasource.provider.d.ts +3 -3
  39. package/services/translation-key.service.d.ts +6 -6
  40. package/services/translation.service.d.ts +5 -5
  41. package/cjs/config/event-actions.js +0 -33
  42. package/cjs/config/index.js +0 -20
  43. package/cjs/config/localization.constants.js +0 -11
  44. package/cjs/config/message-keys.js +0 -41
  45. package/cjs/controllers/index.js +0 -20
  46. package/cjs/controllers/language.controller.js +0 -188
  47. package/cjs/controllers/language.controller.spec.js +0 -154
  48. package/cjs/controllers/translation-key.controller.js +0 -135
  49. package/cjs/controllers/translation-key.controller.spec.js +0 -70
  50. package/cjs/controllers/translation.controller.js +0 -195
  51. package/cjs/controllers/translation.controller.spec.js +0 -169
  52. package/cjs/docs/index.js +0 -11
  53. package/cjs/docs/localization-swagger.config.js +0 -111
  54. package/cjs/docs/localization-swagger.config.spec.js +0 -30
  55. package/cjs/dtos/index.js +0 -20
  56. package/cjs/dtos/language.dto.js +0 -213
  57. package/cjs/dtos/translation-key.dto.js +0 -215
  58. package/cjs/dtos/translation.dto.js +0 -269
  59. package/cjs/entities/index.js +0 -42
  60. package/cjs/entities/index.spec.js +0 -18
  61. package/cjs/entities/language.entity.js +0 -126
  62. package/cjs/entities/translation-key.entity.js +0 -126
  63. package/cjs/entities/translation.entity.js +0 -120
  64. package/cjs/index.js +0 -24
  65. package/cjs/interfaces/index.js +0 -21
  66. package/cjs/interfaces/language.interface.js +0 -4
  67. package/cjs/interfaces/localization-module-options.interface.js +0 -4
  68. package/cjs/interfaces/translation-key.interface.js +0 -4
  69. package/cjs/interfaces/translation.interface.js +0 -4
  70. package/cjs/modules/index.js +0 -18
  71. package/cjs/modules/localization.module.js +0 -116
  72. package/cjs/modules/localization.module.spec.js +0 -132
  73. package/cjs/services/index.js +0 -22
  74. package/cjs/services/language.service.js +0 -181
  75. package/cjs/services/language.service.spec.js +0 -256
  76. package/cjs/services/localization-config.service.js +0 -66
  77. package/cjs/services/localization-config.service.spec.js +0 -80
  78. package/cjs/services/localization-datasource.provider.js +0 -79
  79. package/cjs/services/localization-datasource.provider.spec.js +0 -85
  80. package/cjs/services/translation-key.service.js +0 -179
  81. package/cjs/services/translation-key.service.spec.js +0 -303
  82. package/cjs/services/translation.service.js +0 -228
  83. package/cjs/services/translation.service.spec.js +0 -530
  84. package/fesm/config/event-actions.js +0 -12
  85. package/fesm/config/localization.constants.js +0 -1
  86. package/fesm/config/message-keys.js +0 -20
  87. package/fesm/controllers/language.controller.js +0 -178
  88. package/fesm/controllers/language.controller.spec.js +0 -150
  89. package/fesm/controllers/translation-key.controller.js +0 -125
  90. package/fesm/controllers/translation-key.controller.spec.js +0 -66
  91. package/fesm/controllers/translation.controller.js +0 -185
  92. package/fesm/controllers/translation.controller.spec.js +0 -165
  93. package/fesm/docs/localization-swagger.config.js +0 -101
  94. package/fesm/docs/localization-swagger.config.spec.js +0 -26
  95. package/fesm/dtos/language.dto.js +0 -192
  96. package/fesm/dtos/translation-key.dto.js +0 -194
  97. package/fesm/dtos/translation.dto.js +0 -239
  98. package/fesm/entities/index.spec.js +0 -14
  99. package/fesm/entities/language.entity.js +0 -116
  100. package/fesm/entities/translation-key.entity.js +0 -116
  101. package/fesm/entities/translation.entity.js +0 -110
  102. package/fesm/interfaces/language.interface.js +0 -1
  103. package/fesm/interfaces/localization-module-options.interface.js +0 -1
  104. package/fesm/interfaces/translation-key.interface.js +0 -1
  105. package/fesm/interfaces/translation.interface.js +0 -1
  106. package/fesm/modules/localization.module.js +0 -106
  107. package/fesm/modules/localization.module.spec.js +0 -128
  108. package/fesm/services/language.service.js +0 -171
  109. package/fesm/services/language.service.spec.js +0 -252
  110. package/fesm/services/localization-config.service.js +0 -56
  111. package/fesm/services/localization-config.service.spec.js +0 -76
  112. package/fesm/services/localization-datasource.provider.js +0 -69
  113. package/fesm/services/localization-datasource.provider.spec.js +0 -81
  114. package/fesm/services/translation-key.service.js +0 -169
  115. package/fesm/services/translation-key.service.spec.js +0 -299
  116. package/fesm/services/translation.service.js +0 -218
  117. package/fesm/services/translation.service.spec.js +0 -526
@@ -1,41 +0,0 @@
1
- // ==================== LOCALIZATION MODULE MESSAGE KEYS ====================
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: Object.getOwnPropertyDescriptor(all, name).get
10
- });
11
- }
12
- _export(exports, {
13
- get LANGUAGE_MESSAGES () {
14
- return LANGUAGE_MESSAGES;
15
- },
16
- get TRANSLATION_KEY_MESSAGES () {
17
- return TRANSLATION_KEY_MESSAGES;
18
- },
19
- get TRANSLATION_MESSAGES () {
20
- return TRANSLATION_MESSAGES;
21
- }
22
- });
23
- const LANGUAGE_MESSAGES = {
24
- ACTIVE_SUCCESS: 'language.active.success',
25
- SET_DEFAULT_SUCCESS: 'language.set.default.success',
26
- GET_DEFAULT_SUCCESS: 'language.get.default.success',
27
- READONLY_UPDATE_FORBIDDEN: 'language.readonly.update.forbidden',
28
- READONLY_DELETE_FORBIDDEN: 'language.readonly.delete.forbidden',
29
- DEFAULT_DELETE_FORBIDDEN: 'language.default.delete.forbidden'
30
- };
31
- const TRANSLATION_KEY_MESSAGES = {
32
- MODULES_SUCCESS: 'translation.key.modules.success',
33
- READONLY_DELETE_FORBIDDEN: 'translation.key.readonly.delete.forbidden',
34
- READONLY_UPDATE_FORBIDDEN: 'translation.key.readonly.update.forbidden',
35
- DUPLICATE_KEY_IN_MODULE: 'translation.key.duplicate.key.in.module'
36
- };
37
- const TRANSLATION_MESSAGES = {
38
- GET_ALL_SUCCESS: 'translation.get.all.success',
39
- UPDATE_MANY_SUCCESS: 'translation.update.many.success',
40
- BY_LANGUAGE_SUCCESS: 'translation.by.language.success'
41
- };
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _export_star(require("./language.controller"), exports);
6
- _export_star(require("./translation-key.controller"), exports);
7
- _export_star(require("./translation.controller"), exports);
8
- function _export_star(from, to) {
9
- Object.keys(from).forEach(function(k) {
10
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
11
- Object.defineProperty(to, k, {
12
- enumerable: true,
13
- get: function() {
14
- return from[k];
15
- }
16
- });
17
- }
18
- });
19
- return from;
20
- }
@@ -1,188 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "LanguageController", {
6
- enumerable: true,
7
- get: function() {
8
- return LanguageController;
9
- }
10
- });
11
- const _classes = require("@flusys/nestjs-shared/classes");
12
- const _decorators = require("@flusys/nestjs-shared/decorators");
13
- const _guards = require("@flusys/nestjs-shared/guards");
14
- const _interfaces = require("@flusys/nestjs-shared/interfaces");
15
- const _common = require("@nestjs/common");
16
- const _swagger = require("@nestjs/swagger");
17
- const _config = require("../config");
18
- const _dtos = require("../dtos");
19
- const _services = require("../services");
20
- function _define_property(obj, key, value) {
21
- if (key in obj) {
22
- Object.defineProperty(obj, key, {
23
- value: value,
24
- enumerable: true,
25
- configurable: true,
26
- writable: true
27
- });
28
- } else {
29
- obj[key] = value;
30
- }
31
- return obj;
32
- }
33
- function _ts_decorate(decorators, target, key, desc) {
34
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37
- return c > 3 && r && Object.defineProperty(target, key, r), r;
38
- }
39
- function _ts_metadata(k, v) {
40
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
41
- }
42
- function _ts_param(paramIndex, decorator) {
43
- return function(target, key) {
44
- decorator(target, key, paramIndex);
45
- };
46
- }
47
- let LanguageController = class LanguageController extends (0, _classes.createApiController)(_dtos.CreateLanguageDto, _dtos.UpdateLanguageDto, _dtos.LanguageResponseDto, {
48
- entityName: 'language',
49
- security: {
50
- insert: {
51
- level: 'permission',
52
- permissions: [
53
- _classes.LANGUAGE_PERMISSIONS.CREATE
54
- ]
55
- },
56
- insertMany: {
57
- level: 'permission',
58
- permissions: [
59
- _classes.LANGUAGE_PERMISSIONS.CREATE
60
- ]
61
- },
62
- getById: {
63
- level: 'permission',
64
- permissions: [
65
- _classes.LANGUAGE_PERMISSIONS.READ
66
- ]
67
- },
68
- getAll: {
69
- level: 'permission',
70
- permissions: [
71
- _classes.LANGUAGE_PERMISSIONS.READ
72
- ]
73
- },
74
- update: {
75
- level: 'permission',
76
- permissions: [
77
- _classes.LANGUAGE_PERMISSIONS.UPDATE
78
- ]
79
- },
80
- updateMany: {
81
- level: 'permission',
82
- permissions: [
83
- _classes.LANGUAGE_PERMISSIONS.UPDATE
84
- ]
85
- },
86
- delete: {
87
- level: 'permission',
88
- permissions: [
89
- _classes.LANGUAGE_PERMISSIONS.DELETE
90
- ]
91
- }
92
- }
93
- }) {
94
- async getActive() {
95
- const data = await this.service.getActiveLanguages();
96
- return {
97
- success: true,
98
- message: 'Active languages retrieved successfully',
99
- messageKey: _config.LANGUAGE_MESSAGES.ACTIVE_SUCCESS,
100
- data,
101
- meta: {
102
- total: data.length,
103
- page: 0,
104
- pageSize: data.length,
105
- count: data.length
106
- }
107
- };
108
- }
109
- async getDefault() {
110
- const data = await this.service.getDefaultLanguage();
111
- return {
112
- success: true,
113
- message: 'Default language retrieved successfully',
114
- messageKey: _config.LANGUAGE_MESSAGES.GET_DEFAULT_SUCCESS,
115
- data: data ?? undefined
116
- };
117
- }
118
- async setDefault(body, _user) {
119
- const data = await this.service.setAsDefault(body.id);
120
- return {
121
- success: true,
122
- message: 'Default language updated successfully',
123
- messageKey: _config.LANGUAGE_MESSAGES.SET_DEFAULT_SUCCESS,
124
- data: data ?? undefined
125
- };
126
- }
127
- constructor(service){
128
- super(service), _define_property(this, "service", void 0), this.service = service;
129
- }
130
- };
131
- _ts_decorate([
132
- (0, _common.Post)('get-active'),
133
- (0, _swagger.ApiOperation)({
134
- summary: 'Get all active languages'
135
- }),
136
- (0, _swagger.ApiResponse)({
137
- status: 200,
138
- type: [
139
- _dtos.LanguageResponseDto
140
- ]
141
- }),
142
- _ts_metadata("design:type", Function),
143
- _ts_metadata("design:paramtypes", []),
144
- _ts_metadata("design:returntype", Promise)
145
- ], LanguageController.prototype, "getActive", null);
146
- _ts_decorate([
147
- (0, _common.Post)('get-default'),
148
- (0, _swagger.ApiOperation)({
149
- summary: 'Get default language'
150
- }),
151
- (0, _swagger.ApiResponse)({
152
- status: 200,
153
- type: _dtos.LanguageResponseDto
154
- }),
155
- _ts_metadata("design:type", Function),
156
- _ts_metadata("design:paramtypes", []),
157
- _ts_metadata("design:returntype", Promise)
158
- ], LanguageController.prototype, "getDefault", null);
159
- _ts_decorate([
160
- (0, _common.Post)('set-default'),
161
- (0, _common.UseGuards)(_guards.JwtAuthGuard, _guards.PermissionGuard),
162
- (0, _swagger.ApiBearerAuth)(),
163
- (0, _decorators.RequirePermission)(_classes.LANGUAGE_PERMISSIONS.UPDATE),
164
- (0, _swagger.ApiOperation)({
165
- summary: 'Set a language as default'
166
- }),
167
- (0, _swagger.ApiResponse)({
168
- status: 200,
169
- type: _dtos.LanguageResponseDto
170
- }),
171
- _ts_param(0, (0, _common.Body)()),
172
- _ts_param(1, (0, _decorators.CurrentUser)()),
173
- _ts_metadata("design:type", Function),
174
- _ts_metadata("design:paramtypes", [
175
- Object,
176
- typeof _interfaces.ILoggedUserInfo === "undefined" ? Object : _interfaces.ILoggedUserInfo
177
- ]),
178
- _ts_metadata("design:returntype", Promise)
179
- ], LanguageController.prototype, "setDefault", null);
180
- LanguageController = _ts_decorate([
181
- (0, _swagger.ApiTags)('Localization - Language'),
182
- (0, _common.Controller)('localization/language'),
183
- _ts_param(0, (0, _common.Inject)(_services.LanguageService)),
184
- _ts_metadata("design:type", Function),
185
- _ts_metadata("design:paramtypes", [
186
- typeof _services.LanguageService === "undefined" ? Object : _services.LanguageService
187
- ])
188
- ], LanguageController);
@@ -1,154 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _testing = require("@nestjs/testing");
6
- const _modules = require("@flusys/nestjs-shared/modules");
7
- const _loggedusermock = require("@test-utils/mocks/logged-user.mock");
8
- const _languagecontroller = require("./language.controller");
9
- const _services = require("../services");
10
- function buildLanguage(overrides = {}) {
11
- return {
12
- id: 'lang-en',
13
- code: 'en',
14
- name: 'English',
15
- nativeName: 'English',
16
- direction: 'ltr',
17
- isActive: true,
18
- isDefault: false,
19
- serial: 1,
20
- isReadonly: false,
21
- createdAt: new Date(),
22
- updatedAt: new Date(),
23
- deletedAt: null,
24
- createdById: null,
25
- updatedById: null,
26
- deletedById: null,
27
- ...overrides
28
- };
29
- }
30
- describe('LanguageController', ()=>{
31
- let controller;
32
- let mockService;
33
- beforeEach(async ()=>{
34
- mockService = {
35
- insert: jest.fn(),
36
- findById: jest.fn(),
37
- getAll: jest.fn(),
38
- update: jest.fn(),
39
- delete: jest.fn(),
40
- getActiveLanguages: jest.fn(),
41
- getDefaultLanguage: jest.fn(),
42
- setAsDefault: jest.fn()
43
- };
44
- const module = await _testing.Test.createTestingModule({
45
- controllers: [
46
- _languagecontroller.LanguageController
47
- ],
48
- providers: [
49
- {
50
- provide: _services.LanguageService,
51
- useValue: mockService
52
- },
53
- // The base ApiController wires the Slug interceptor (needs UtilsService) on several
54
- // inherited endpoints, so it must be resolvable even though these tests only hit custom routes.
55
- {
56
- provide: _modules.UtilsService,
57
- useValue: {}
58
- }
59
- ]
60
- }).compile();
61
- controller = module.get(_languagecontroller.LanguageController);
62
- });
63
- describe('getActive', ()=>{
64
- it('returns all active languages with a full-length meta block', async ()=>{
65
- const languages = [
66
- buildLanguage({
67
- code: 'en'
68
- }),
69
- buildLanguage({
70
- id: 'lang-bn',
71
- code: 'bn'
72
- })
73
- ];
74
- mockService.getActiveLanguages.mockResolvedValue(languages);
75
- const result = await controller.getActive();
76
- expect(result).toEqual({
77
- success: true,
78
- message: 'Active languages retrieved successfully',
79
- messageKey: 'language.active.success',
80
- data: languages,
81
- meta: {
82
- total: 2,
83
- page: 0,
84
- pageSize: 2,
85
- count: 2
86
- }
87
- });
88
- });
89
- it('returns an empty list with zeroed meta when no languages are active', async ()=>{
90
- mockService.getActiveLanguages.mockResolvedValue([]);
91
- const result = await controller.getActive();
92
- expect(result.data).toEqual([]);
93
- expect(result.meta).toEqual({
94
- total: 0,
95
- page: 0,
96
- pageSize: 0,
97
- count: 0
98
- });
99
- });
100
- });
101
- describe('getDefault', ()=>{
102
- it('returns the default language', async ()=>{
103
- const defaultLanguage = buildLanguage({
104
- isDefault: true
105
- });
106
- mockService.getDefaultLanguage.mockResolvedValue(defaultLanguage);
107
- const result = await controller.getDefault();
108
- expect(result).toEqual({
109
- success: true,
110
- message: 'Default language retrieved successfully',
111
- messageKey: 'language.get.default.success',
112
- data: defaultLanguage
113
- });
114
- });
115
- it('falls back to undefined data when no default language is configured', async ()=>{
116
- mockService.getDefaultLanguage.mockResolvedValue(null);
117
- const result = await controller.getDefault();
118
- expect(result.data).toBeUndefined();
119
- expect(result.success).toBe(true);
120
- });
121
- });
122
- describe('setDefault', ()=>{
123
- it('sets the given language id as default and returns it', async ()=>{
124
- const updated = buildLanguage({
125
- id: 'lang-bn',
126
- isDefault: true
127
- });
128
- mockService.setAsDefault.mockResolvedValue(updated);
129
- const result = await controller.setDefault({
130
- id: 'lang-bn'
131
- }, (0, _loggedusermock.buildMockUser)());
132
- expect(mockService.setAsDefault).toHaveBeenCalledWith('lang-bn');
133
- expect(result).toEqual({
134
- success: true,
135
- message: 'Default language updated successfully',
136
- messageKey: 'language.set.default.success',
137
- data: updated
138
- });
139
- });
140
- it('returns undefined data when the id does not match any language', async ()=>{
141
- mockService.setAsDefault.mockResolvedValue(null);
142
- const result = await controller.setDefault({
143
- id: 'unknown-id'
144
- }, (0, _loggedusermock.buildMockUser)());
145
- expect(result.data).toBeUndefined();
146
- });
147
- it('propagates errors raised by the service unchanged', async ()=>{
148
- mockService.setAsDefault.mockRejectedValue(new Error('database unavailable'));
149
- await expect(controller.setDefault({
150
- id: 'lang-en'
151
- }, (0, _loggedusermock.buildMockUser)())).rejects.toThrow('database unavailable');
152
- });
153
- });
154
- });
@@ -1,135 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TranslationKeyController", {
6
- enumerable: true,
7
- get: function() {
8
- return TranslationKeyController;
9
- }
10
- });
11
- const _classes = require("@flusys/nestjs-shared/classes");
12
- const _decorators = require("@flusys/nestjs-shared/decorators");
13
- const _guards = require("@flusys/nestjs-shared/guards");
14
- const _interfaces = require("@flusys/nestjs-shared/interfaces");
15
- const _common = require("@nestjs/common");
16
- const _swagger = require("@nestjs/swagger");
17
- const _config = require("../config");
18
- const _dtos = require("../dtos");
19
- const _services = require("../services");
20
- function _define_property(obj, key, value) {
21
- if (key in obj) {
22
- Object.defineProperty(obj, key, {
23
- value: value,
24
- enumerable: true,
25
- configurable: true,
26
- writable: true
27
- });
28
- } else {
29
- obj[key] = value;
30
- }
31
- return obj;
32
- }
33
- function _ts_decorate(decorators, target, key, desc) {
34
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37
- return c > 3 && r && Object.defineProperty(target, key, r), r;
38
- }
39
- function _ts_metadata(k, v) {
40
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
41
- }
42
- function _ts_param(paramIndex, decorator) {
43
- return function(target, key) {
44
- decorator(target, key, paramIndex);
45
- };
46
- }
47
- let TranslationKeyController = class TranslationKeyController extends (0, _classes.createApiController)(_dtos.CreateTranslationKeyDto, _dtos.UpdateTranslationKeyDto, _dtos.TranslationKeyResponseDto, {
48
- entityName: 'translation.key',
49
- security: {
50
- insert: {
51
- level: 'permission',
52
- permissions: [
53
- _classes.TRANSLATION_KEY_PERMISSIONS.CREATE
54
- ]
55
- },
56
- insertMany: {
57
- level: 'permission',
58
- permissions: [
59
- _classes.TRANSLATION_KEY_PERMISSIONS.CREATE
60
- ]
61
- },
62
- getById: {
63
- level: 'permission',
64
- permissions: [
65
- _classes.TRANSLATION_KEY_PERMISSIONS.READ
66
- ]
67
- },
68
- getAll: {
69
- level: 'permission',
70
- permissions: [
71
- _classes.TRANSLATION_KEY_PERMISSIONS.READ
72
- ]
73
- },
74
- update: {
75
- level: 'permission',
76
- permissions: [
77
- _classes.TRANSLATION_KEY_PERMISSIONS.UPDATE
78
- ]
79
- },
80
- updateMany: {
81
- level: 'permission',
82
- permissions: [
83
- _classes.TRANSLATION_KEY_PERMISSIONS.UPDATE
84
- ]
85
- },
86
- delete: {
87
- level: 'permission',
88
- permissions: [
89
- _classes.TRANSLATION_KEY_PERMISSIONS.DELETE
90
- ]
91
- }
92
- }
93
- }) {
94
- async getModules(_user) {
95
- const data = await this.service.getModules();
96
- return {
97
- success: true,
98
- message: 'Modules retrieved successfully',
99
- messageKey: _config.TRANSLATION_KEY_MESSAGES.MODULES_SUCCESS,
100
- data
101
- };
102
- }
103
- constructor(service){
104
- super(service), _define_property(this, "service", void 0), this.service = service;
105
- }
106
- };
107
- _ts_decorate([
108
- (0, _common.Post)('get-modules'),
109
- (0, _common.UseGuards)(_guards.JwtAuthGuard),
110
- (0, _swagger.ApiBearerAuth)(),
111
- (0, _swagger.ApiOperation)({
112
- summary: 'Get all distinct module names'
113
- }),
114
- (0, _swagger.ApiResponse)({
115
- status: 200,
116
- type: [
117
- String
118
- ]
119
- }),
120
- _ts_param(0, (0, _decorators.CurrentUser)()),
121
- _ts_metadata("design:type", Function),
122
- _ts_metadata("design:paramtypes", [
123
- typeof _interfaces.ILoggedUserInfo === "undefined" ? Object : _interfaces.ILoggedUserInfo
124
- ]),
125
- _ts_metadata("design:returntype", Promise)
126
- ], TranslationKeyController.prototype, "getModules", null);
127
- TranslationKeyController = _ts_decorate([
128
- (0, _swagger.ApiTags)('Localization - Translation Key'),
129
- (0, _common.Controller)('localization/translation-key'),
130
- _ts_param(0, (0, _common.Inject)(_services.TranslationKeyService)),
131
- _ts_metadata("design:type", Function),
132
- _ts_metadata("design:paramtypes", [
133
- typeof _services.TranslationKeyService === "undefined" ? Object : _services.TranslationKeyService
134
- ])
135
- ], TranslationKeyController);
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _testing = require("@nestjs/testing");
6
- const _modules = require("@flusys/nestjs-shared/modules");
7
- const _loggedusermock = require("@test-utils/mocks/logged-user.mock");
8
- const _translationkeycontroller = require("./translation-key.controller");
9
- const _services = require("../services");
10
- describe('TranslationKeyController', ()=>{
11
- let controller;
12
- let mockService;
13
- beforeEach(async ()=>{
14
- mockService = {
15
- insert: jest.fn(),
16
- findById: jest.fn(),
17
- getAll: jest.fn(),
18
- update: jest.fn(),
19
- delete: jest.fn(),
20
- getModules: jest.fn(),
21
- findByModule: jest.fn()
22
- };
23
- const module = await _testing.Test.createTestingModule({
24
- controllers: [
25
- _translationkeycontroller.TranslationKeyController
26
- ],
27
- providers: [
28
- {
29
- provide: _services.TranslationKeyService,
30
- useValue: mockService
31
- },
32
- {
33
- provide: _modules.UtilsService,
34
- useValue: {}
35
- }
36
- ]
37
- }).compile();
38
- controller = module.get(_translationkeycontroller.TranslationKeyController);
39
- });
40
- describe('getModules', ()=>{
41
- it('returns the distinct module names from the service', async ()=>{
42
- mockService.getModules.mockResolvedValue([
43
- 'auth',
44
- 'shared',
45
- 'storage'
46
- ]);
47
- const result = await controller.getModules((0, _loggedusermock.buildMockUser)());
48
- expect(result).toEqual({
49
- success: true,
50
- message: 'Modules retrieved successfully',
51
- messageKey: 'translation.key.modules.success',
52
- data: [
53
- 'auth',
54
- 'shared',
55
- 'storage'
56
- ]
57
- });
58
- });
59
- it('returns an empty array when no translation keys have been created yet', async ()=>{
60
- mockService.getModules.mockResolvedValue([]);
61
- const result = await controller.getModules((0, _loggedusermock.buildMockUser)());
62
- expect(result.data).toEqual([]);
63
- expect(result.success).toBe(true);
64
- });
65
- it('propagates unexpected errors from the service', async ()=>{
66
- mockService.getModules.mockRejectedValue(new Error('query failed'));
67
- await expect(controller.getModules((0, _loggedusermock.buildMockUser)())).rejects.toThrow('query failed');
68
- });
69
- });
70
- });