update : update route permissions

This commit is contained in:
2025-12-27 15:04:55 +03:30
parent 8f5269186d
commit 0e1aedc95d
+31 -18
View File
@@ -16,9 +16,9 @@ import { PermissionEnum } from "../users/enums/permission.enum";
import { UserDec } from "../../common/decorators/user.decorator"; import { UserDec } from "../../common/decorators/user.decorator";
@ApiTags("d-menu") @ApiTags("d-menu")
@Controller("admin/dmenu") @Controller()
@AuthGuards() @AuthGuards()
@PermissionsDec(PermissionEnum.DMENU)
@ApiBearerAuth() @ApiBearerAuth()
export class DmenuController { export class DmenuController {
constructor( constructor(
@@ -28,96 +28,109 @@ export class DmenuController {
) { } ) { }
// Icon endpoints // Icon endpoints
@Post('icons') @PermissionsDec(PermissionEnum.DMENU)
@Post('admin/dmenu/icons')
@ApiOperation({ summary: "Create icon" }) @ApiOperation({ summary: "Create icon" })
createIcon(@Body() dto: CreateIconDto) { createIcon(@Body() dto: CreateIconDto) {
return this.iconsService.createIcon(dto); return this.iconsService.createIcon(dto);
} }
@Get('icons') @PermissionsDec(PermissionEnum.DMENU)
@Get('admin/dmenu/icons')
@ApiOperation({ summary: "Get all icons" }) @ApiOperation({ summary: "Get all icons" })
findAllIcons() { findAllIcons() {
return this.iconsService.findAllIcons(); return this.iconsService.findAllIcons();
} }
// Group endpoints: place BEFORE `icons/:id` routes to avoid route conflicts // Group endpoints: place BEFORE `icons/:id` routes to avoid route conflicts
@Post("icons/groups") @PermissionsDec(PermissionEnum.DMENU)
@Post("admin/dmenu/icons/groups")
@ApiOperation({ summary: "Create icon group" }) @ApiOperation({ summary: "Create icon group" })
createGroup(@Body() dto: CreateGroupDto) { createGroup(@Body() dto: CreateGroupDto) {
return this.iconsService.createGroup(dto); return this.iconsService.createGroup(dto);
} }
@Get("icons/groups") @PermissionsDec(PermissionEnum.DMENU)
@Get("admin/dmenu/icons/groups")
@ApiOperation({ summary: "Get all icon groups" }) @ApiOperation({ summary: "Get all icon groups" })
findAllGroups() { findAllGroups() {
return this.iconsService.findAllGroups(); return this.iconsService.findAllGroups();
} }
@Get("icons/groups/:id") @PermissionsDec(PermissionEnum.DMENU)
@Get("admin/dmenu/icons/groups/:id")
@ApiOperation({ summary: "Get icon group by id" }) @ApiOperation({ summary: "Get icon group by id" })
@ApiParam({ name: "id", required: true, type: String }) @ApiParam({ name: "id", required: true, type: String })
findOneGroup(@Param("id") id: string) { findOneGroup(@Param("id") id: string) {
return this.iconsService.findOneGroup(id); return this.iconsService.findOneGroup(id);
} }
@Patch("icons/groups/:id") @PermissionsDec(PermissionEnum.DMENU)
@Patch("admin/dmenu/icons/groups/:id")
@ApiOperation({ summary: "Update icon group" }) @ApiOperation({ summary: "Update icon group" })
@ApiParam({ name: "id" }) @ApiParam({ name: "id" })
updateGroup(@Param("id") id: string, @Body() dto: UpdateGroupDto) { updateGroup(@Param("id") id: string, @Body() dto: UpdateGroupDto) {
return this.iconsService.updateGroup(id, dto); return this.iconsService.updateGroup(id, dto);
} }
@Delete("icons/groups/:id") @PermissionsDec(PermissionEnum.DMENU)
@Delete("admin/dmenu/icons/groups/:id")
@ApiOperation({ summary: "Delete icon group" }) @ApiOperation({ summary: "Delete icon group" })
@ApiParam({ name: "id" }) @ApiParam({ name: "id" })
removeGroup(@Param("id") id: string) { removeGroup(@Param("id") id: string) {
return this.iconsService.removeGroup(id); return this.iconsService.removeGroup(id);
} }
@Get("icons/:id") @PermissionsDec(PermissionEnum.DMENU)
@Get("admin/dmenu/icons/:id")
@ApiOperation({ summary: "Get icon by id" }) @ApiOperation({ summary: "Get icon by id" })
@ApiParam({ name: "id", required: true, type: String }) @ApiParam({ name: "id", required: true, type: String })
findOneIcon(@Param("id") id: string) { findOneIcon(@Param("id") id: string) {
return this.iconsService.findOneIcon(id); return this.iconsService.findOneIcon(id);
} }
@Patch("icons/:id") @PermissionsDec(PermissionEnum.DMENU)
@Patch("admin/dmenu/icons/:id")
@ApiOperation({ summary: "Update icon" }) @ApiOperation({ summary: "Update icon" })
@ApiParam({ name: "id" }) @ApiParam({ name: "id" })
updateIcon(@Param("id") id: string, @Body() dto: UpdateIconDto) { updateIcon(@Param("id") id: string, @Body() dto: UpdateIconDto) {
return this.iconsService.updateIcon(id, dto); return this.iconsService.updateIcon(id, dto);
} }
@Delete("icons/:id") @PermissionsDec(PermissionEnum.DMENU)
@Delete("admin/dmenu/icons/:id")
@ApiOperation({ summary: "Delete icon" }) @ApiOperation({ summary: "Delete icon" })
@ApiParam({ name: "id" }) @ApiParam({ name: "id" })
removeIcon(@Param("id") id: string) { removeIcon(@Param("id") id: string) {
return this.iconsService.removeIcon(id); return this.iconsService.removeIcon(id);
} }
// contacts // contacts
@Get('contacts') @PermissionsDec(PermissionEnum.DMENU)
@Get('admin/dmenu/contacts')
findAll() { findAll() {
return this.contactService.findAll(); return this.contactService.findAll();
} }
@Get("contacts/:id") @PermissionsDec(PermissionEnum.DMENU)
@Get("admin/dmenu/contacts/:id")
findOne(@Param("id") id: string) { findOne(@Param("id") id: string) {
return this.contactService.findOne(+id); return this.contactService.findOne(+id);
} }
// restaurant // restaurant
@Get('restaurants') @PermissionsDec(PermissionEnum.DMENU)
@Get('admin/dmenu/restaurants')
@ApiOperation({ summary: "Get all restaurants" }) @ApiOperation({ summary: "Get all restaurants" })
findAllRestaurant(@Query() queryDto: FindRestaurantsDto) { findAllRestaurant(@Query() queryDto: FindRestaurantsDto) {
return this.restaurantService.findAll(queryDto); return this.restaurantService.findAll(queryDto);
} }
//User Endpoints
@Post('restaurants') @Post('dmenu/restaurants')
@ApiOperation({ summary: "Create restaurant" }) @ApiOperation({ summary: "Create restaurant" })
createRestaurant(@Body() dto: SetupRestaurantDto, @UserDec("id") userId: string) { createRestaurant(@Body() dto: SetupRestaurantDto, @UserDec("id") userId: string) {
return this.restaurantService.createRestaurant(dto, userId); return this.restaurantService.createRestaurant(dto, userId);
} }
@Get('/super-admin/restaurants/subscription/:subscriptionId') @Get('dmenu/restaurants/subscription/:subscriptionId')
@ApiOperation({ summary: "Get restaurant subscription by subscription ID" }) @ApiOperation({ summary: "Get restaurant subscription by subscription ID" })
@ApiParam({ name: "subscriptionId", required: true, type: String }) @ApiParam({ name: "subscriptionId", required: true, type: String })
getRestaurantSubscription(@Param("subscriptionId") subscriptionId: string) { getRestaurantSubscription(@Param("subscriptionId") subscriptionId: string) {