@hedhog/admin 0.11.1 → 0.12.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 (54) hide show
  1. package/{hedhog.yaml → bkp.hedhog.yaml} +1012 -814
  2. package/dist/auth/consts/body.js +23 -23
  3. package/package.json +43 -43
  4. package/src/admin.module.ts +37 -37
  5. package/src/auth/auth.controller.ts +72 -72
  6. package/src/auth/auth.module.ts +39 -39
  7. package/src/auth/auth.service.spec.ts +196 -196
  8. package/src/auth/auth.service.ts +234 -234
  9. package/src/auth/consts/body.ts +26 -26
  10. package/src/auth/consts/subject.ts +1 -1
  11. package/src/auth/dto/forget.dto.ts +6 -6
  12. package/src/auth/dto/login.dto.ts +15 -15
  13. package/src/auth/dto/otp.dto.ts +11 -11
  14. package/src/auth/dto/reset.dto.ts +14 -14
  15. package/src/auth/enums/multifactor-type.enum.ts +4 -4
  16. package/src/auth/guards/auth.guard.ts +50 -50
  17. package/src/auth/types/user.type.ts +8 -8
  18. package/src/dto/delete.dto.ts +8 -8
  19. package/src/dto/update-ids.dto.ts +9 -9
  20. package/src/index.ts +20 -20
  21. package/src/menu/dto/create.dto.ts +25 -25
  22. package/src/menu/dto/order.dto.ts +8 -8
  23. package/src/menu/dto/update.dto.ts +19 -19
  24. package/src/menu/menu.controller.ts +105 -105
  25. package/src/menu/menu.module.ts +18 -18
  26. package/src/menu/menu.service.spec.ts +247 -247
  27. package/src/menu/menu.service.ts +263 -263
  28. package/src/role/dto/create.dto.ts +7 -7
  29. package/src/role/dto/update.dto.ts +4 -4
  30. package/src/role/guards/role.guard.ts +123 -123
  31. package/src/role/role.controller.ts +126 -126
  32. package/src/role/role.module.ts +28 -28
  33. package/src/role/role.service.spec.ts +417 -417
  34. package/src/role/role.service.ts +289 -289
  35. package/src/route/dto/create.dto.ts +13 -13
  36. package/src/route/dto/update.dto.ts +15 -15
  37. package/src/route/route.controller.ts +91 -91
  38. package/src/route/route.module.ts +18 -18
  39. package/src/route/route.service.spec.ts +300 -300
  40. package/src/route/route.service.ts +164 -164
  41. package/src/screen/dto/create.dto.ts +11 -11
  42. package/src/screen/dto/update.dto.ts +19 -19
  43. package/src/screen/screen.controller.ts +93 -93
  44. package/src/screen/screen.module.ts +18 -18
  45. package/src/screen/screen.service.spec.ts +298 -298
  46. package/src/screen/screen.service.ts +179 -179
  47. package/src/types/http-method.ts +8 -8
  48. package/src/user/constants/user.constants.ts +1 -1
  49. package/src/user/dto/create.dto.ts +24 -24
  50. package/src/user/dto/update.dto.ts +41 -41
  51. package/src/user/user.controller.ts +75 -75
  52. package/src/user/user.module.ts +18 -18
  53. package/src/user/user.service.spec.ts +294 -294
  54. package/src/user/user.service.ts +129 -129
@@ -1,300 +1,300 @@
1
- // import {
2
- // PageOrderDirection,
3
- // PaginationDTO,
4
- // PaginationService,
5
- // } from '@hedhog/pagination';
6
- // import { PrismaService } from '@hedhog/prisma';
7
- // import { Test, TestingModule } from '@nestjs/testing';
8
- // import { DeleteDTO } from '../dto/delete.dto';
9
- // import { UpdateIdsDTO } from '../dto/update-ids.dto';
10
- // import { CreateDTO } from './dto/create.dto';
11
- // import { UpdateDTO } from './dto/update.dto';
12
- // import { RouteService } from './route.service';
13
-
14
- // describe('RouteService', () => {
15
- // let service: RouteService;
16
- // let prismaService: PrismaService;
17
- // let paginationService: PaginationService;
18
-
19
- // const mockPrismaService = {
20
- // route: {
21
- // findUnique: jest.fn(),
22
- // create: jest.fn(),
23
- // update: jest.fn(),
24
- // deleteMany: jest.fn(),
25
- // },
26
- // role_route: {
27
- // deleteMany: jest.fn(),
28
- // createMany: jest.fn(),
29
- // },
30
- // route_screens: {
31
- // deleteMany: jest.fn(),
32
- // createMany: jest.fn(),
33
- // },
34
- // createInsensitiveSearch: jest.fn(),
35
- // };
36
-
37
- // const mockPaginationService = {
38
- // paginate: jest.fn(),
39
- // };
40
-
41
- // beforeEach(async () => {
42
- // const module: TestingModule = await Test.createTestingModule({
43
- // providers: [
44
- // RouteService,
45
- // { provide: PrismaService, useValue: mockPrismaService },
46
- // { provide: PaginationService, useValue: mockPaginationService },
47
- // ],
48
- // }).compile();
49
-
50
- // service = module.get<RouteService>(RouteService);
51
- // prismaService = module.get<PrismaService>(PrismaService);
52
- // paginationService = module.get<PaginationService>(PaginationService);
53
- // });
54
-
55
- // it('should be defined', () => {
56
- // expect(service).toBeDefined();
57
- // });
58
- // /*
59
- // describe('getRoutes', () => {
60
- // it('should paginate route', async () => {
61
- // const paginationParams: PaginationDTO = {
62
- // page: 1,
63
- // pageSize: 10,
64
- // search: '',
65
- // sortField: '',
66
- // sortOrder: PageOrderDirection.Asc,
67
- // fields: '',
68
- // };
69
- // const result = { data: [], total: 0 };
70
-
71
- // mockPrismaService.createInsensitiveSearch.mockReturnValue([]);
72
- // mockPaginationService.paginate.mockResolvedValue(result);
73
-
74
- // const res = await service.getRoutes(paginationParams);
75
-
76
- // expect(mockPrismaService.createInsensitiveSearch).toHaveBeenCalledWith(
77
- // ['url', 'method'],
78
- // paginationParams,
79
- // );
80
- // expect(mockPaginationService.paginate).toHaveBeenCalledWith(
81
- // mockPrismaService.route,
82
- // paginationParams,
83
- // { where: { OR: [] } },
84
- // );
85
- // expect(res).toEqual(result);
86
- // });
87
- // });
88
- // */
89
- // /*
90
- // describe('getRouteById', () => {
91
- // it('should return a route by ID', async () => {
92
- // const routeId = 1;
93
- // const route = { id: routeId, url: '/test', method: 'GET' };
94
-
95
- // mockPrismaService.route.findUnique.mockResolvedValue(route);
96
-
97
- // const res = await service.getRouteById(routeId);
98
-
99
- // expect(mockPrismaService.route.findUnique).toHaveBeenCalledWith({
100
- // where: { id: routeId },
101
- // });
102
- // expect(res).toEqual(route);
103
- // });
104
- // });*/
105
-
106
- // describe('create', () => {
107
- // it('should create a new route', async () => {
108
- // const createDto: CreateDTO = { url: '/test', method: 'GET' };
109
- // const route = { id: 1, ...createDto };
110
-
111
- // mockPrismaService.route.create.mockResolvedValue(route);
112
-
113
- // const res = await service.create(createDto);
114
-
115
- // expect(mockPrismaService.route.create).toHaveBeenCalledWith({
116
- // data: createDto,
117
- // });
118
- // expect(res).toEqual(route);
119
- // });
120
- // });
121
-
122
- // describe('update', () => {
123
- // it('should update a route', async () => {
124
- // const updateDto: UpdateDTO = { url: '/updated', method: 'POST' };
125
- // const routeId = 1;
126
- // const updatedRoute = { id: routeId, ...updateDto };
127
-
128
- // mockPrismaService.route.update.mockResolvedValue(updatedRoute);
129
-
130
- // const res = await service.update({ id: routeId, data: updateDto });
131
-
132
- // expect(mockPrismaService.route.update).toHaveBeenCalledWith({
133
- // where: { id: routeId },
134
- // data: updateDto,
135
- // });
136
- // expect(res).toEqual(updatedRoute);
137
- // });
138
- // });
139
-
140
- // describe('delete', () => {
141
- // it('should delete route by ids', async () => {
142
- // const deleteDto: DeleteDTO = { ids: [1, 2] };
143
- // const result = { count: 2 };
144
-
145
- // mockPrismaService.route.deleteMany.mockResolvedValue(result);
146
-
147
- // const res = await service.delete(deleteDto);
148
-
149
- // expect(mockPrismaService.route.deleteMany).toHaveBeenCalledWith({
150
- // where: { id: { in: deleteDto.ids } },
151
- // });
152
- // expect(res).toEqual(result);
153
- // });
154
- // });
155
-
156
- // describe('updateRoles', () => {
157
- // it('should update role for a route', async () => {
158
- // const routeId = 1;
159
- // const updateIdsDto: UpdateIdsDTO = { ids: [1, 2] };
160
- // const result = { count: 2 };
161
-
162
- // mockPrismaService.role_route.deleteMany.mockResolvedValue({});
163
- // mockPrismaService.role_route.createMany.mockResolvedValue(result);
164
-
165
- // const res = await service.updateRoles(routeId, updateIdsDto);
166
-
167
- // expect(mockPrismaService.role_route.deleteMany).toHaveBeenCalledWith({
168
- // where: { route_id: routeId },
169
- // });
170
- // expect(mockPrismaService.role_route.createMany).toHaveBeenCalledWith({
171
- // data: updateIdsDto.ids.map((roleId) => ({
172
- // role_id: roleId,
173
- // route_id: routeId,
174
- // })),
175
- // skipDuplicates: true,
176
- // });
177
- // expect(res).toEqual(result);
178
- // });
179
- // });
180
-
181
- // describe('updateScreens', () => {
182
- // it('should update screens for a route', async () => {
183
- // const routeId = 1;
184
- // const updateIdsDto: UpdateIdsDTO = { ids: [1, 2] };
185
- // const result = { count: 2 };
186
-
187
- // mockPrismaService.route_screens.deleteMany.mockResolvedValue({});
188
- // mockPrismaService.route_screens.createMany.mockResolvedValue(result);
189
-
190
- // const res = await service.updateScreens(routeId, updateIdsDto);
191
-
192
- // expect(mockPrismaService.route_screens.deleteMany).toHaveBeenCalledWith({
193
- // where: { route_id: routeId },
194
- // });
195
- // expect(mockPrismaService.route_screens.createMany).toHaveBeenCalledWith({
196
- // data: updateIdsDto.ids.map((screenId) => ({
197
- // screen_id: screenId,
198
- // route_id: routeId,
199
- // })),
200
- // skipDuplicates: true,
201
- // });
202
- // expect(res).toEqual(result);
203
- // });
204
- // });
205
-
206
- // describe('listRoles', () => {
207
- // it('should call paginate method with correct parameters', async () => {
208
- // const locale = 'en';
209
- // const routeId = 1;
210
- // const paginationParams: PaginationDTO = {
211
- // page: 1,
212
- // pageSize: 10,
213
- // search: '',
214
- // sortField: '',
215
- // sortOrder: PageOrderDirection.Asc,
216
- // fields: '',
217
- // };
218
-
219
- // paginationService.paginate = jest.fn().mockResolvedValue({
220
- // data: [],
221
- // total: 0,
222
- // });
223
-
224
- // await service.listRoles(locale, routeId, paginationParams);
225
-
226
- // expect(paginationService.paginate).toHaveBeenCalledWith(
227
- // prismaService.role,
228
- // paginationParams,
229
- // {
230
- // include: {
231
- // role_locale: {
232
- // where: {
233
- // locale: { code: locale },
234
- // },
235
- // select: {
236
- // name: true,
237
- // description: true,
238
- // },
239
- // },
240
- // role_route: {
241
- // where: { route_id: routeId },
242
- // select: {
243
- // route_id: true,
244
- // role_id: true,
245
- // },
246
- // },
247
- // },
248
- // },
249
- // 'role_locale',
250
- // );
251
- // });
252
- // });
253
-
254
- // describe('listScreens', () => {
255
- // it('should call paginate method with correct parameters', async () => {
256
- // const locale = 'en';
257
- // const routeId = 1;
258
- // const paginationParams: PaginationDTO = {
259
- // page: 1,
260
- // pageSize: 10,
261
- // search: '',
262
- // sortField: '',
263
- // sortOrder: PageOrderDirection.Asc,
264
- // fields: '',
265
- // };
266
-
267
- // paginationService.paginate = jest.fn().mockResolvedValue({
268
- // data: [],
269
- // total: 0,
270
- // });
271
-
272
- // await service.listScreens(locale, routeId, paginationParams);
273
-
274
- // expect(paginationService.paginate).toHaveBeenCalledWith(
275
- // prismaService.screens,
276
- // paginationParams,
277
- // {
278
- // include: {
279
- // screen_locale: {
280
- // where: {
281
- // locale: { code: locale },
282
- // },
283
- // select: {
284
- // name: true,
285
- // },
286
- // },
287
- // route_screens: {
288
- // where: { route_id: routeId },
289
- // select: {
290
- // route_id: true,
291
- // screen_id: true,
292
- // },
293
- // },
294
- // },
295
- // },
296
- // 'screen_locale',
297
- // );
298
- // });
299
- // });
300
- // });
1
+ // import {
2
+ // PageOrderDirection,
3
+ // PaginationDTO,
4
+ // PaginationService,
5
+ // } from '@hedhog/pagination';
6
+ // import { PrismaService } from '@hedhog/prisma';
7
+ // import { Test, TestingModule } from '@nestjs/testing';
8
+ // import { DeleteDTO } from '../dto/delete.dto';
9
+ // import { UpdateIdsDTO } from '../dto/update-ids.dto';
10
+ // import { CreateDTO } from './dto/create.dto';
11
+ // import { UpdateDTO } from './dto/update.dto';
12
+ // import { RouteService } from './route.service';
13
+
14
+ // describe('RouteService', () => {
15
+ // let service: RouteService;
16
+ // let prismaService: PrismaService;
17
+ // let paginationService: PaginationService;
18
+
19
+ // const mockPrismaService = {
20
+ // route: {
21
+ // findUnique: jest.fn(),
22
+ // create: jest.fn(),
23
+ // update: jest.fn(),
24
+ // deleteMany: jest.fn(),
25
+ // },
26
+ // role_route: {
27
+ // deleteMany: jest.fn(),
28
+ // createMany: jest.fn(),
29
+ // },
30
+ // route_screens: {
31
+ // deleteMany: jest.fn(),
32
+ // createMany: jest.fn(),
33
+ // },
34
+ // createInsensitiveSearch: jest.fn(),
35
+ // };
36
+
37
+ // const mockPaginationService = {
38
+ // paginate: jest.fn(),
39
+ // };
40
+
41
+ // beforeEach(async () => {
42
+ // const module: TestingModule = await Test.createTestingModule({
43
+ // providers: [
44
+ // RouteService,
45
+ // { provide: PrismaService, useValue: mockPrismaService },
46
+ // { provide: PaginationService, useValue: mockPaginationService },
47
+ // ],
48
+ // }).compile();
49
+
50
+ // service = module.get<RouteService>(RouteService);
51
+ // prismaService = module.get<PrismaService>(PrismaService);
52
+ // paginationService = module.get<PaginationService>(PaginationService);
53
+ // });
54
+
55
+ // it('should be defined', () => {
56
+ // expect(service).toBeDefined();
57
+ // });
58
+ // /*
59
+ // describe('getRoutes', () => {
60
+ // it('should paginate route', async () => {
61
+ // const paginationParams: PaginationDTO = {
62
+ // page: 1,
63
+ // pageSize: 10,
64
+ // search: '',
65
+ // sortField: '',
66
+ // sortOrder: PageOrderDirection.Asc,
67
+ // fields: '',
68
+ // };
69
+ // const result = { data: [], total: 0 };
70
+
71
+ // mockPrismaService.createInsensitiveSearch.mockReturnValue([]);
72
+ // mockPaginationService.paginate.mockResolvedValue(result);
73
+
74
+ // const res = await service.getRoutes(paginationParams);
75
+
76
+ // expect(mockPrismaService.createInsensitiveSearch).toHaveBeenCalledWith(
77
+ // ['url', 'method'],
78
+ // paginationParams,
79
+ // );
80
+ // expect(mockPaginationService.paginate).toHaveBeenCalledWith(
81
+ // mockPrismaService.route,
82
+ // paginationParams,
83
+ // { where: { OR: [] } },
84
+ // );
85
+ // expect(res).toEqual(result);
86
+ // });
87
+ // });
88
+ // */
89
+ // /*
90
+ // describe('getRouteById', () => {
91
+ // it('should return a route by ID', async () => {
92
+ // const routeId = 1;
93
+ // const route = { id: routeId, url: '/test', method: 'GET' };
94
+
95
+ // mockPrismaService.route.findUnique.mockResolvedValue(route);
96
+
97
+ // const res = await service.getRouteById(routeId);
98
+
99
+ // expect(mockPrismaService.route.findUnique).toHaveBeenCalledWith({
100
+ // where: { id: routeId },
101
+ // });
102
+ // expect(res).toEqual(route);
103
+ // });
104
+ // });*/
105
+
106
+ // describe('create', () => {
107
+ // it('should create a new route', async () => {
108
+ // const createDto: CreateDTO = { url: '/test', method: 'GET' };
109
+ // const route = { id: 1, ...createDto };
110
+
111
+ // mockPrismaService.route.create.mockResolvedValue(route);
112
+
113
+ // const res = await service.create(createDto);
114
+
115
+ // expect(mockPrismaService.route.create).toHaveBeenCalledWith({
116
+ // data: createDto,
117
+ // });
118
+ // expect(res).toEqual(route);
119
+ // });
120
+ // });
121
+
122
+ // describe('update', () => {
123
+ // it('should update a route', async () => {
124
+ // const updateDto: UpdateDTO = { url: '/updated', method: 'POST' };
125
+ // const routeId = 1;
126
+ // const updatedRoute = { id: routeId, ...updateDto };
127
+
128
+ // mockPrismaService.route.update.mockResolvedValue(updatedRoute);
129
+
130
+ // const res = await service.update({ id: routeId, data: updateDto });
131
+
132
+ // expect(mockPrismaService.route.update).toHaveBeenCalledWith({
133
+ // where: { id: routeId },
134
+ // data: updateDto,
135
+ // });
136
+ // expect(res).toEqual(updatedRoute);
137
+ // });
138
+ // });
139
+
140
+ // describe('delete', () => {
141
+ // it('should delete route by ids', async () => {
142
+ // const deleteDto: DeleteDTO = { ids: [1, 2] };
143
+ // const result = { count: 2 };
144
+
145
+ // mockPrismaService.route.deleteMany.mockResolvedValue(result);
146
+
147
+ // const res = await service.delete(deleteDto);
148
+
149
+ // expect(mockPrismaService.route.deleteMany).toHaveBeenCalledWith({
150
+ // where: { id: { in: deleteDto.ids } },
151
+ // });
152
+ // expect(res).toEqual(result);
153
+ // });
154
+ // });
155
+
156
+ // describe('updateRoles', () => {
157
+ // it('should update role for a route', async () => {
158
+ // const routeId = 1;
159
+ // const updateIdsDto: UpdateIdsDTO = { ids: [1, 2] };
160
+ // const result = { count: 2 };
161
+
162
+ // mockPrismaService.role_route.deleteMany.mockResolvedValue({});
163
+ // mockPrismaService.role_route.createMany.mockResolvedValue(result);
164
+
165
+ // const res = await service.updateRoles(routeId, updateIdsDto);
166
+
167
+ // expect(mockPrismaService.role_route.deleteMany).toHaveBeenCalledWith({
168
+ // where: { route_id: routeId },
169
+ // });
170
+ // expect(mockPrismaService.role_route.createMany).toHaveBeenCalledWith({
171
+ // data: updateIdsDto.ids.map((roleId) => ({
172
+ // role_id: roleId,
173
+ // route_id: routeId,
174
+ // })),
175
+ // skipDuplicates: true,
176
+ // });
177
+ // expect(res).toEqual(result);
178
+ // });
179
+ // });
180
+
181
+ // describe('updateScreens', () => {
182
+ // it('should update screens for a route', async () => {
183
+ // const routeId = 1;
184
+ // const updateIdsDto: UpdateIdsDTO = { ids: [1, 2] };
185
+ // const result = { count: 2 };
186
+
187
+ // mockPrismaService.route_screens.deleteMany.mockResolvedValue({});
188
+ // mockPrismaService.route_screens.createMany.mockResolvedValue(result);
189
+
190
+ // const res = await service.updateScreens(routeId, updateIdsDto);
191
+
192
+ // expect(mockPrismaService.route_screens.deleteMany).toHaveBeenCalledWith({
193
+ // where: { route_id: routeId },
194
+ // });
195
+ // expect(mockPrismaService.route_screens.createMany).toHaveBeenCalledWith({
196
+ // data: updateIdsDto.ids.map((screenId) => ({
197
+ // screen_id: screenId,
198
+ // route_id: routeId,
199
+ // })),
200
+ // skipDuplicates: true,
201
+ // });
202
+ // expect(res).toEqual(result);
203
+ // });
204
+ // });
205
+
206
+ // describe('listRoles', () => {
207
+ // it('should call paginate method with correct parameters', async () => {
208
+ // const locale = 'en';
209
+ // const routeId = 1;
210
+ // const paginationParams: PaginationDTO = {
211
+ // page: 1,
212
+ // pageSize: 10,
213
+ // search: '',
214
+ // sortField: '',
215
+ // sortOrder: PageOrderDirection.Asc,
216
+ // fields: '',
217
+ // };
218
+
219
+ // paginationService.paginate = jest.fn().mockResolvedValue({
220
+ // data: [],
221
+ // total: 0,
222
+ // });
223
+
224
+ // await service.listRoles(locale, routeId, paginationParams);
225
+
226
+ // expect(paginationService.paginate).toHaveBeenCalledWith(
227
+ // prismaService.role,
228
+ // paginationParams,
229
+ // {
230
+ // include: {
231
+ // role_locale: {
232
+ // where: {
233
+ // locale: { code: locale },
234
+ // },
235
+ // select: {
236
+ // name: true,
237
+ // description: true,
238
+ // },
239
+ // },
240
+ // role_route: {
241
+ // where: { route_id: routeId },
242
+ // select: {
243
+ // route_id: true,
244
+ // role_id: true,
245
+ // },
246
+ // },
247
+ // },
248
+ // },
249
+ // 'role_locale',
250
+ // );
251
+ // });
252
+ // });
253
+
254
+ // describe('listScreens', () => {
255
+ // it('should call paginate method with correct parameters', async () => {
256
+ // const locale = 'en';
257
+ // const routeId = 1;
258
+ // const paginationParams: PaginationDTO = {
259
+ // page: 1,
260
+ // pageSize: 10,
261
+ // search: '',
262
+ // sortField: '',
263
+ // sortOrder: PageOrderDirection.Asc,
264
+ // fields: '',
265
+ // };
266
+
267
+ // paginationService.paginate = jest.fn().mockResolvedValue({
268
+ // data: [],
269
+ // total: 0,
270
+ // });
271
+
272
+ // await service.listScreens(locale, routeId, paginationParams);
273
+
274
+ // expect(paginationService.paginate).toHaveBeenCalledWith(
275
+ // prismaService.screens,
276
+ // paginationParams,
277
+ // {
278
+ // include: {
279
+ // screen_locale: {
280
+ // where: {
281
+ // locale: { code: locale },
282
+ // },
283
+ // select: {
284
+ // name: true,
285
+ // },
286
+ // },
287
+ // route_screens: {
288
+ // where: { route_id: routeId },
289
+ // select: {
290
+ // route_id: true,
291
+ // screen_id: true,
292
+ // },
293
+ // },
294
+ // },
295
+ // },
296
+ // 'screen_locale',
297
+ // );
298
+ // });
299
+ // });
300
+ // });