Files
backend/src/group/controllers/group.controller.ts
T

54 lines
1.9 KiB
TypeScript

import { GroupService } from '../services/group.service';
import { Controller, Get, UseGuards, Param, Req } from '@nestjs/common';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
import { ControllerRoute } from '@app/common/constants/controller-route'; // Assuming this is where the routes are defined
import { PermissionsGuard } from 'src/guards/permissions.guard';
import { Permissions } from 'src/decorators/permissions.decorator';
@ApiTags('Group Module')
@Controller({
version: EnableDisableStatusEnum.ENABLED,
path: ControllerRoute.GROUP.ROUTE, // use the static route constant
})
export class GroupController {
constructor(private readonly groupService: GroupService) {}
@ApiBearerAuth()
@UseGuards(PermissionsGuard)
@Permissions('DEVICE_WIZARD_VIEW_DEVICE_WIZARD')
@Get(':spaceUuid')
@ApiOperation({
summary: ControllerRoute.GROUP.ACTIONS.GET_GROUPS_BY_SPACE_UUID_SUMMARY,
description:
ControllerRoute.GROUP.ACTIONS.GET_GROUPS_BY_SPACE_UUID_DESCRIPTION,
})
async getGroupsBySpaceUuid(@Param('spaceUuid') spaceUuid: string) {
return await this.groupService.getGroupsBySpaceUuid(spaceUuid);
}
@ApiBearerAuth()
@UseGuards(PermissionsGuard)
@Permissions('DEVICE_WIZARD_VIEW_DEVICE_WIZARD')
@Get(':spaceUuid/devices/:groupName')
@ApiOperation({
summary:
ControllerRoute.GROUP.ACTIONS.GET_UNIT_DEVICES_BY_GROUP_NAME_SUMMARY,
description:
ControllerRoute.GROUP.ACTIONS.GET_UNIT_DEVICES_BY_GROUP_NAME_DESCRIPTION,
})
async getUnitDevicesByGroupName(
@Param('spaceUuid') spaceUuid: string,
@Param('groupName') groupName: string,
@Req() req: any,
) {
const userUuid = req.user.uuid;
return await this.groupService.getSpaceDevicesByGroupName(
spaceUuid,
groupName,
userUuid,
);
}
}