mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-11 15:48:09 +00:00
49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { ControllerRoute } from '@app/common/constants/controller-route';
|
|
import { Controller, Delete, Param, Post, UseGuards } from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
import { SpaceUserService } from '../services';
|
|
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
|
import { UserSpaceParam } from '../dtos';
|
|
import { PermissionsGuard } from 'src/guards/permissions.guard';
|
|
import { Permissions } from 'src/decorators/permissions.decorator';
|
|
|
|
@ApiTags('Space Module')
|
|
@Controller({
|
|
version: '1',
|
|
path: ControllerRoute.SPACE_USER.ROUTE,
|
|
})
|
|
export class SpaceUserController {
|
|
constructor(private readonly spaceUserService: SpaceUserService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@Post('/:userUuid')
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('ASSIGN_USER_TO_SPACE')
|
|
@ApiOperation({
|
|
summary:
|
|
ControllerRoute.SPACE_USER.ACTIONS.ASSOCIATE_SPACE_USER_DESCRIPTION,
|
|
description:
|
|
ControllerRoute.SPACE_USER.ACTIONS.ASSOCIATE_SPACE_USER_DESCRIPTION,
|
|
})
|
|
async associateUserToSpace(
|
|
@Param() params: UserSpaceParam,
|
|
): Promise<BaseResponseDto> {
|
|
return this.spaceUserService.associateUserToSpace(params);
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@Delete('/:userUuid')
|
|
@UseGuards(PermissionsGuard)
|
|
@Permissions('DELETE_USER_FROM_SPACE')
|
|
@ApiOperation({
|
|
summary: ControllerRoute.SPACE_USER.ACTIONS.DISSOCIATE_SPACE_USER_SUMMARY,
|
|
description:
|
|
ControllerRoute.SPACE_USER.ACTIONS.DISSOCIATE_SPACE_USER_DESCRIPTION,
|
|
})
|
|
async disassociateUserFromSpace(
|
|
@Param() params: UserSpaceParam,
|
|
): Promise<BaseResponseDto> {
|
|
return this.spaceUserService.disassociateUserFromSpace(params);
|
|
}
|
|
}
|