@hed-hog/core 0.0.139 → 0.0.140

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 (37) hide show
  1. package/dist/menu/dto/update.dto.d.ts +1 -0
  2. package/dist/menu/dto/update.dto.d.ts.map +1 -1
  3. package/dist/menu/dto/update.dto.js +4 -0
  4. package/dist/menu/dto/update.dto.js.map +1 -1
  5. package/dist/menu/menu.controller.d.ts +4 -16
  6. package/dist/menu/menu.controller.d.ts.map +1 -1
  7. package/dist/menu/menu.controller.js +26 -47
  8. package/dist/menu/menu.controller.js.map +1 -1
  9. package/dist/menu/menu.service.d.ts +3 -3
  10. package/dist/menu/menu.service.d.ts.map +1 -1
  11. package/dist/menu/menu.service.js +54 -6
  12. package/dist/menu/menu.service.js.map +1 -1
  13. package/dist/role/role.controller.d.ts +2 -2
  14. package/dist/role/role.controller.d.ts.map +1 -1
  15. package/dist/role/role.controller.js +8 -6
  16. package/dist/role/role.controller.js.map +1 -1
  17. package/dist/role/role.service.d.ts +2 -2
  18. package/dist/role/role.service.d.ts.map +1 -1
  19. package/dist/role/role.service.js +22 -4
  20. package/dist/role/role.service.js.map +1 -1
  21. package/dist/route/route.controller.d.ts +4 -4
  22. package/dist/route/route.controller.d.ts.map +1 -1
  23. package/dist/route/route.controller.js +20 -16
  24. package/dist/route/route.controller.js.map +1 -1
  25. package/dist/route/route.service.d.ts +4 -4
  26. package/dist/route/route.service.d.ts.map +1 -1
  27. package/dist/route/route.service.js +37 -5
  28. package/dist/route/route.service.js.map +1 -1
  29. package/hedhog/data/route.yaml +8 -0
  30. package/package.json +2 -2
  31. package/src/menu/dto/update.dto.ts +3 -0
  32. package/src/menu/menu.controller.ts +10 -28
  33. package/src/menu/menu.service.ts +48 -6
  34. package/src/role/role.controller.ts +4 -3
  35. package/src/role/role.service.ts +28 -4
  36. package/src/route/route.controller.ts +12 -11
  37. package/src/route/route.service.ts +49 -6
@@ -1,6 +1,7 @@
1
+ import { getLocaleText } from '@hed-hog/api-locale';
1
2
  import { PaginationDTO, PaginationService } from '@hed-hog/api-pagination';
2
3
  import { PrismaService } from '@hed-hog/api-prisma';
3
- import { forwardRef, Inject, Injectable } from '@nestjs/common';
4
+ import { BadRequestException, forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common';
4
5
  import { DeleteDTO } from '../dto/delete.dto';
5
6
  import { UpdateIdsDTO } from '../dto/update-ids.dto';
6
7
  import { CreateDTO } from './dto/create.dto';
@@ -34,22 +35,64 @@ export class RouteService {
34
35
  );
35
36
  }
36
37
 
37
- async get(routeId: number): Promise<any> {
38
- return this.prismaService.route.findUnique({ where: { id: routeId } });
38
+ async get(routeId: number, locale: string): Promise<any> {
39
+ const route = await this.prismaService.route.findUnique({ where: { id: routeId } });
40
+
41
+ if (!route) {
42
+ throw new NotFoundException(getLocaleText('itemNotFound', locale, `Route with ID ${routeId} not found`).replace('{{item}}', 'Route'));
43
+ }
44
+
45
+ return route;
39
46
  }
40
47
 
41
- async create({ url, method }: CreateDTO): Promise<any> {
48
+ async create({ url, method }: CreateDTO, locale: string): Promise<any> {
49
+
50
+ const existingRoute = await this.prismaService.route.findFirst({
51
+ where: {
52
+ url,
53
+ method,
54
+ },
55
+ });
56
+
57
+ if (existingRoute) {
58
+ throw new BadRequestException(getLocaleText('itemAlreadyExists', locale, `Route with URL ${url} and method ${method} already exists`).replace('{{item}}', 'Route'));
59
+ }
60
+
42
61
  return this.prismaService.route.create({ data: { url, method } });
43
62
  }
44
63
 
45
- async update({ id, data }: { id: number; data: UpdateDTO }): Promise<any> {
64
+ async update({ id, data }: { id: number; data: UpdateDTO }, locale: string): Promise<any> {
65
+
66
+ const routeExists = await this.prismaService.route.findUnique({
67
+ where: { id },
68
+ });
69
+
70
+ if (!routeExists) {
71
+ throw new NotFoundException(getLocaleText('itemNotFound', locale, `Route with ID ${id} not found`).replace('{{item}}', 'Route'));
72
+ }
73
+
46
74
  return this.prismaService.route.update({
47
75
  where: { id },
48
76
  data,
49
77
  });
50
78
  }
51
79
 
52
- async delete({ ids }: DeleteDTO):Promise<{count:number}> {
80
+ async delete({ ids }: DeleteDTO, locale: string):Promise<{count:number}> {
81
+
82
+ const existingRoutes = await this.prismaService.route.findMany({
83
+ where: {
84
+ id: {
85
+ in: ids,
86
+ },
87
+ },
88
+ });
89
+
90
+ if (existingRoutes.length !== ids.length) {
91
+ const existingIds = existingRoutes.map((route) => route.id);
92
+ const missingIds = ids.filter((id) => !existingIds.includes(id));
93
+ throw new NotFoundException(getLocaleText('itemsNotFound', locale, `Routes with IDs ${missingIds.join(', ')} not found`).replace('{{items}}', 'Routes'));
94
+ }
95
+
53
96
  return this.prismaService.route.deleteMany({
54
97
  where: {
55
98
  id: {