@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,247 +1,247 @@
1
- // import {
2
- // PageOrderDirection,
3
- // PaginationDTO,
4
- // PaginationService,
5
- // } from '@hedhog/pagination';
6
- // import { PrismaService } from '@hedhog/prisma';
7
- // import { BadRequestException } from '@nestjs/common';
8
- // import { Test, TestingModule } from '@nestjs/testing';
9
- // import { MenuService } from './menu.service';
10
-
11
- // describe('MenuService', () => {
12
- // let menuService: MenuService;
13
- // let prismaService: PrismaService;
14
- // let paginationService: PaginationService;
15
-
16
- // const mockPrismaService = {
17
- // menu: {
18
- // create: jest.fn(),
19
- // update: jest.fn(),
20
- // deleteMany: jest.fn(),
21
- // findUnique: jest.fn(),
22
- // findMany: jest.fn(),
23
- // count: jest.fn(),
24
- // },
25
- // role_menu: {
26
- // deleteMany: jest.fn(),
27
- // createMany: jest.fn(),
28
- // },
29
- // menu_screen: {
30
- // deleteMany: jest.fn(),
31
- // createMany: jest.fn(),
32
- // },
33
- // };
34
-
35
- // const mockPaginationService = {
36
- // paginate: jest.fn(),
37
- // createInsensitiveSearch: jest.fn(),
38
- // };
39
-
40
- // beforeEach(async () => {
41
- // const module: TestingModule = await Test.createTestingModule({
42
- // providers: [
43
- // MenuService,
44
- // { provide: PrismaService, useValue: mockPrismaService },
45
- // { provide: PaginationService, useValue: mockPaginationService },
46
- // ],
47
- // }).compile();
48
-
49
- // menuService = module.get<MenuService>(MenuService);
50
- // prismaService = module.get<PrismaService>(PrismaService);
51
- // paginationService = module.get<PaginationService>(PaginationService);
52
- // });
53
-
54
- // afterEach(() => {
55
- // jest.clearAllMocks();
56
- // });
57
-
58
- // describe('create', () => {
59
- // it('should create a new menu', async () => {
60
- // const createMenuDto = {
61
- // name: 'Test Menu',
62
- // url: '/test',
63
- // icon: 'test-icon',
64
- // order: 1,
65
- // menu_id: undefined,
66
- // };
67
- // mockPrismaService.menu.create.mockResolvedValue(createMenuDto);
68
-
69
- // const result = await menuService.create(createMenuDto);
70
-
71
- // expect(result).toEqual(createMenuDto);
72
- // expect(prismaService.menu.create).toHaveBeenCalledWith({
73
- // data: createMenuDto,
74
- // });
75
- // });
76
- // });
77
-
78
- // describe('update', () => {
79
- // it('should update a menu', async () => {
80
- // const updateDto = { id: 1, data: { name: 'Updated Menu' } };
81
- // mockPrismaService.menu.update.mockResolvedValue(updateDto.data);
82
-
83
- // const result = await menuService.update(updateDto);
84
-
85
- // expect(result).toEqual(updateDto.data);
86
- // expect(prismaService.menu.update).toHaveBeenCalledWith({
87
- // where: { id: updateDto.id },
88
- // data: updateDto.data,
89
- // });
90
- // });
91
- // });
92
-
93
- // describe('delete', () => {
94
- // it('should delete menu', async () => {
95
- // const deleteDto = { ids: [1, 2, 3] };
96
- // mockPrismaService.menu.deleteMany.mockResolvedValue({ count: 3 });
97
-
98
- // const result = await menuService.delete(deleteDto);
99
-
100
- // expect(result).toEqual({ count: 3 });
101
- // expect(prismaService.menu.deleteMany).toHaveBeenCalledWith({
102
- // where: { id: { in: deleteDto.ids } },
103
- // });
104
- // });
105
-
106
- // it('should throw BadRequestException if no ids are provided', async () => {
107
- // await expect(menuService.delete({ ids: null })).rejects.toThrow(
108
- // BadRequestException,
109
- // );
110
- // });
111
- // });
112
-
113
- // describe('listScreens', () => {
114
- // it('should paginate screens', async () => {
115
- // const locale = 'en';
116
- // const menuId = 1;
117
- // const paginationParams: PaginationDTO = {
118
- // page: 1,
119
- // pageSize: 10,
120
- // search: '',
121
- // sortField: '',
122
- // sortOrder: PageOrderDirection.Asc,
123
- // fields: '',
124
- // };
125
-
126
- // const mockScreens = [{ id: 1, name: 'Screen 1' }];
127
- // mockPaginationService.paginate.mockResolvedValue(mockScreens);
128
-
129
- // const result = await menuService.listScreens(
130
- // locale,
131
- // menuId,
132
- // paginationParams,
133
- // );
134
-
135
- // expect(result).toEqual(mockScreens);
136
- // expect(paginationService.paginate).toHaveBeenCalledWith(
137
- // prismaService.screens,
138
- // paginationParams,
139
- // expect.anything(),
140
- // 'screen_locale',
141
- // );
142
- // });
143
- // });
144
-
145
- // describe('updateScreens', () => {
146
- // it('should update screens associated with a menu', async () => {
147
- // const menuId = 1;
148
- // const updateData = { ids: [1, 2, 3] };
149
-
150
- // jest
151
- // .spyOn(prismaService.menu_screen, 'deleteMany')
152
- // .mockResolvedValue(null);
153
- // jest
154
- // .spyOn(prismaService.menu_screen, 'createMany')
155
- // .mockResolvedValue(null);
156
-
157
- // await menuService.updateScreens(menuId, updateData);
158
-
159
- // expect(prismaService.menu_screen.deleteMany).toHaveBeenCalledWith({
160
- // where: { menu_id: menuId },
161
- // });
162
-
163
- // expect(prismaService.menu_screen.createMany).toHaveBeenCalledWith({
164
- // data: updateData.ids.map((screenId) => ({
165
- // menu_id: menuId,
166
- // screen_id: screenId,
167
- // })),
168
- // skipDuplicates: true,
169
- // });
170
- // });
171
- // });
172
-
173
- // describe('updateRoles', () => {
174
- // it('should update role associated with a menu', async () => {
175
- // const menuId = 1;
176
- // const updateData = { ids: [1, 2] };
177
-
178
- // jest.spyOn(prismaService.role_menu, 'deleteMany').mockResolvedValue(null);
179
- // jest.spyOn(prismaService.role_menu, 'createMany').mockResolvedValue(null);
180
-
181
- // await menuService.updateRoles(menuId, updateData);
182
-
183
- // expect(prismaService.role_menu.deleteMany).toHaveBeenCalledWith({
184
- // where: { menu_id: menuId },
185
- // });
186
-
187
- // expect(prismaService.role_menu.createMany).toHaveBeenCalledWith({
188
- // data: updateData.ids.map((roleId) => ({
189
- // menu_id: menuId,
190
- // role_id: roleId,
191
- // })),
192
- // skipDuplicates: true,
193
- // });
194
- // });
195
- // });
196
-
197
- // describe('updateOrder', () => {
198
- // it('should update the order of menu', async () => {
199
- // const orderData = { ids: [1, 2, 3] };
200
-
201
- // jest.spyOn(prismaService.menu, 'count').mockResolvedValue(3);
202
- // jest.spyOn(prismaService.menu, 'update').mockResolvedValue(null);
203
-
204
- // await menuService.updateOrder(orderData);
205
-
206
- // expect(prismaService.menu.count).toHaveBeenCalledWith({
207
- // where: { id: { in: orderData.ids } },
208
- // });
209
-
210
- // expect(prismaService.menu.update).toHaveBeenCalledTimes(
211
- // orderData.ids.length,
212
- // );
213
-
214
- // orderData.ids.forEach((id, index) => {
215
- // expect(prismaService.menu.update).toHaveBeenCalledWith({
216
- // where: { id },
217
- // data: { order: index + 1 },
218
- // });
219
- // });
220
- // });
221
-
222
- // it('should throw BadRequestException if IDs are invalid', async () => {
223
- // const orderData = { ids: [1, 2, 3] };
224
-
225
- // jest.spyOn(prismaService.menu, 'count').mockResolvedValue(2); // IDs não batem com o número esperado
226
-
227
- // await expect(menuService.updateOrder(orderData)).rejects.toThrow(
228
- // BadRequestException,
229
- // );
230
- // });
231
- // });
232
- // /*
233
- // describe('getMenus', () => {
234
- // it('should get menu for a user', async () => {
235
- // const locale = 'en';
236
- // const userId = 1;
237
- // const mockMenus = [{ id: 1, name: 'Menu 1' }];
238
- // mockPrismaService.menu.findMany.mockResolvedValue(mockMenus);
239
-
240
- // const result = await menuService.getMenus(locale, userId);
241
-
242
- // expect(result).toEqual(mockMenus);
243
- // expect(prismaService.menu.findMany).toHaveBeenCalled();
244
- // });
245
- // });
246
- // */
247
- // });
1
+ // import {
2
+ // PageOrderDirection,
3
+ // PaginationDTO,
4
+ // PaginationService,
5
+ // } from '@hedhog/pagination';
6
+ // import { PrismaService } from '@hedhog/prisma';
7
+ // import { BadRequestException } from '@nestjs/common';
8
+ // import { Test, TestingModule } from '@nestjs/testing';
9
+ // import { MenuService } from './menu.service';
10
+
11
+ // describe('MenuService', () => {
12
+ // let menuService: MenuService;
13
+ // let prismaService: PrismaService;
14
+ // let paginationService: PaginationService;
15
+
16
+ // const mockPrismaService = {
17
+ // menu: {
18
+ // create: jest.fn(),
19
+ // update: jest.fn(),
20
+ // deleteMany: jest.fn(),
21
+ // findUnique: jest.fn(),
22
+ // findMany: jest.fn(),
23
+ // count: jest.fn(),
24
+ // },
25
+ // role_menu: {
26
+ // deleteMany: jest.fn(),
27
+ // createMany: jest.fn(),
28
+ // },
29
+ // menu_screen: {
30
+ // deleteMany: jest.fn(),
31
+ // createMany: jest.fn(),
32
+ // },
33
+ // };
34
+
35
+ // const mockPaginationService = {
36
+ // paginate: jest.fn(),
37
+ // createInsensitiveSearch: jest.fn(),
38
+ // };
39
+
40
+ // beforeEach(async () => {
41
+ // const module: TestingModule = await Test.createTestingModule({
42
+ // providers: [
43
+ // MenuService,
44
+ // { provide: PrismaService, useValue: mockPrismaService },
45
+ // { provide: PaginationService, useValue: mockPaginationService },
46
+ // ],
47
+ // }).compile();
48
+
49
+ // menuService = module.get<MenuService>(MenuService);
50
+ // prismaService = module.get<PrismaService>(PrismaService);
51
+ // paginationService = module.get<PaginationService>(PaginationService);
52
+ // });
53
+
54
+ // afterEach(() => {
55
+ // jest.clearAllMocks();
56
+ // });
57
+
58
+ // describe('create', () => {
59
+ // it('should create a new menu', async () => {
60
+ // const createMenuDto = {
61
+ // name: 'Test Menu',
62
+ // url: '/test',
63
+ // icon: 'test-icon',
64
+ // order: 1,
65
+ // menu_id: undefined,
66
+ // };
67
+ // mockPrismaService.menu.create.mockResolvedValue(createMenuDto);
68
+
69
+ // const result = await menuService.create(createMenuDto);
70
+
71
+ // expect(result).toEqual(createMenuDto);
72
+ // expect(prismaService.menu.create).toHaveBeenCalledWith({
73
+ // data: createMenuDto,
74
+ // });
75
+ // });
76
+ // });
77
+
78
+ // describe('update', () => {
79
+ // it('should update a menu', async () => {
80
+ // const updateDto = { id: 1, data: { name: 'Updated Menu' } };
81
+ // mockPrismaService.menu.update.mockResolvedValue(updateDto.data);
82
+
83
+ // const result = await menuService.update(updateDto);
84
+
85
+ // expect(result).toEqual(updateDto.data);
86
+ // expect(prismaService.menu.update).toHaveBeenCalledWith({
87
+ // where: { id: updateDto.id },
88
+ // data: updateDto.data,
89
+ // });
90
+ // });
91
+ // });
92
+
93
+ // describe('delete', () => {
94
+ // it('should delete menu', async () => {
95
+ // const deleteDto = { ids: [1, 2, 3] };
96
+ // mockPrismaService.menu.deleteMany.mockResolvedValue({ count: 3 });
97
+
98
+ // const result = await menuService.delete(deleteDto);
99
+
100
+ // expect(result).toEqual({ count: 3 });
101
+ // expect(prismaService.menu.deleteMany).toHaveBeenCalledWith({
102
+ // where: { id: { in: deleteDto.ids } },
103
+ // });
104
+ // });
105
+
106
+ // it('should throw BadRequestException if no ids are provided', async () => {
107
+ // await expect(menuService.delete({ ids: null })).rejects.toThrow(
108
+ // BadRequestException,
109
+ // );
110
+ // });
111
+ // });
112
+
113
+ // describe('listScreens', () => {
114
+ // it('should paginate screens', async () => {
115
+ // const locale = 'en';
116
+ // const menuId = 1;
117
+ // const paginationParams: PaginationDTO = {
118
+ // page: 1,
119
+ // pageSize: 10,
120
+ // search: '',
121
+ // sortField: '',
122
+ // sortOrder: PageOrderDirection.Asc,
123
+ // fields: '',
124
+ // };
125
+
126
+ // const mockScreens = [{ id: 1, name: 'Screen 1' }];
127
+ // mockPaginationService.paginate.mockResolvedValue(mockScreens);
128
+
129
+ // const result = await menuService.listScreens(
130
+ // locale,
131
+ // menuId,
132
+ // paginationParams,
133
+ // );
134
+
135
+ // expect(result).toEqual(mockScreens);
136
+ // expect(paginationService.paginate).toHaveBeenCalledWith(
137
+ // prismaService.screens,
138
+ // paginationParams,
139
+ // expect.anything(),
140
+ // 'screen_locale',
141
+ // );
142
+ // });
143
+ // });
144
+
145
+ // describe('updateScreens', () => {
146
+ // it('should update screens associated with a menu', async () => {
147
+ // const menuId = 1;
148
+ // const updateData = { ids: [1, 2, 3] };
149
+
150
+ // jest
151
+ // .spyOn(prismaService.menu_screen, 'deleteMany')
152
+ // .mockResolvedValue(null);
153
+ // jest
154
+ // .spyOn(prismaService.menu_screen, 'createMany')
155
+ // .mockResolvedValue(null);
156
+
157
+ // await menuService.updateScreens(menuId, updateData);
158
+
159
+ // expect(prismaService.menu_screen.deleteMany).toHaveBeenCalledWith({
160
+ // where: { menu_id: menuId },
161
+ // });
162
+
163
+ // expect(prismaService.menu_screen.createMany).toHaveBeenCalledWith({
164
+ // data: updateData.ids.map((screenId) => ({
165
+ // menu_id: menuId,
166
+ // screen_id: screenId,
167
+ // })),
168
+ // skipDuplicates: true,
169
+ // });
170
+ // });
171
+ // });
172
+
173
+ // describe('updateRoles', () => {
174
+ // it('should update role associated with a menu', async () => {
175
+ // const menuId = 1;
176
+ // const updateData = { ids: [1, 2] };
177
+
178
+ // jest.spyOn(prismaService.role_menu, 'deleteMany').mockResolvedValue(null);
179
+ // jest.spyOn(prismaService.role_menu, 'createMany').mockResolvedValue(null);
180
+
181
+ // await menuService.updateRoles(menuId, updateData);
182
+
183
+ // expect(prismaService.role_menu.deleteMany).toHaveBeenCalledWith({
184
+ // where: { menu_id: menuId },
185
+ // });
186
+
187
+ // expect(prismaService.role_menu.createMany).toHaveBeenCalledWith({
188
+ // data: updateData.ids.map((roleId) => ({
189
+ // menu_id: menuId,
190
+ // role_id: roleId,
191
+ // })),
192
+ // skipDuplicates: true,
193
+ // });
194
+ // });
195
+ // });
196
+
197
+ // describe('updateOrder', () => {
198
+ // it('should update the order of menu', async () => {
199
+ // const orderData = { ids: [1, 2, 3] };
200
+
201
+ // jest.spyOn(prismaService.menu, 'count').mockResolvedValue(3);
202
+ // jest.spyOn(prismaService.menu, 'update').mockResolvedValue(null);
203
+
204
+ // await menuService.updateOrder(orderData);
205
+
206
+ // expect(prismaService.menu.count).toHaveBeenCalledWith({
207
+ // where: { id: { in: orderData.ids } },
208
+ // });
209
+
210
+ // expect(prismaService.menu.update).toHaveBeenCalledTimes(
211
+ // orderData.ids.length,
212
+ // );
213
+
214
+ // orderData.ids.forEach((id, index) => {
215
+ // expect(prismaService.menu.update).toHaveBeenCalledWith({
216
+ // where: { id },
217
+ // data: { order: index + 1 },
218
+ // });
219
+ // });
220
+ // });
221
+
222
+ // it('should throw BadRequestException if IDs are invalid', async () => {
223
+ // const orderData = { ids: [1, 2, 3] };
224
+
225
+ // jest.spyOn(prismaService.menu, 'count').mockResolvedValue(2); // IDs não batem com o número esperado
226
+
227
+ // await expect(menuService.updateOrder(orderData)).rejects.toThrow(
228
+ // BadRequestException,
229
+ // );
230
+ // });
231
+ // });
232
+ // /*
233
+ // describe('getMenus', () => {
234
+ // it('should get menu for a user', async () => {
235
+ // const locale = 'en';
236
+ // const userId = 1;
237
+ // const mockMenus = [{ id: 1, name: 'Menu 1' }];
238
+ // mockPrismaService.menu.findMany.mockResolvedValue(mockMenus);
239
+
240
+ // const result = await menuService.getMenus(locale, userId);
241
+
242
+ // expect(result).toEqual(mockMenus);
243
+ // expect(prismaService.menu.findMany).toHaveBeenCalled();
244
+ // });
245
+ // });
246
+ // */
247
+ // });