mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 18:27:05 +00:00
186 lines
5.1 KiB
TypeScript
186 lines
5.1 KiB
TypeScript
import { DeviceService } from '../services/device.service';
|
|
import {
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Query,
|
|
Param,
|
|
HttpException,
|
|
HttpStatus,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
|
import {
|
|
AddDeviceInGroupDto,
|
|
AddDeviceInRoomDto,
|
|
} from '../dtos/add.device.dto';
|
|
import {
|
|
GetDeviceByGroupIdDto,
|
|
GetDeviceByRoomUuidDto,
|
|
} from '../dtos/get.device.dto';
|
|
import { ControlDeviceDto } from '../dtos/control.device.dto';
|
|
import { CheckRoomGuard } from 'src/guards/room.guard';
|
|
import { CheckGroupGuard } from 'src/guards/group.guard';
|
|
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
|
|
|
@ApiTags('Device Module')
|
|
@Controller({
|
|
version: '1',
|
|
path: 'device',
|
|
})
|
|
export class DeviceController {
|
|
constructor(private readonly deviceService: DeviceService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard, CheckRoomGuard)
|
|
@Get('room')
|
|
async getDevicesByRoomId(
|
|
@Query() getDeviceByRoomUuidDto: GetDeviceByRoomUuidDto,
|
|
) {
|
|
try {
|
|
return await this.deviceService.getDevicesByRoomId(
|
|
getDeviceByRoomUuidDto,
|
|
);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard, CheckRoomGuard)
|
|
@Post('room')
|
|
async addDeviceInRoom(@Body() addDeviceInRoomDto: AddDeviceInRoomDto) {
|
|
try {
|
|
return await this.deviceService.addDeviceInRoom(addDeviceInRoomDto);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard, CheckGroupGuard)
|
|
@Get('group')
|
|
async getDevicesByGroupId(
|
|
@Query() getDeviceByGroupIdDto: GetDeviceByGroupIdDto,
|
|
) {
|
|
try {
|
|
return await this.deviceService.getDevicesByGroupId(
|
|
getDeviceByGroupIdDto,
|
|
);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard, CheckGroupGuard)
|
|
@Post('group')
|
|
async addDeviceInGroup(@Body() addDeviceInGroupDto: AddDeviceInGroupDto) {
|
|
try {
|
|
return await this.deviceService.addDeviceInGroup(addDeviceInGroupDto);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get(':deviceUuid')
|
|
async getDeviceDetailsByDeviceId(@Param('deviceUuid') deviceUuid: string) {
|
|
try {
|
|
return await this.deviceService.getDeviceDetailsByDeviceId(deviceUuid);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get(':deviceUuid/functions')
|
|
async getDeviceInstructionByDeviceId(
|
|
@Param('deviceUuid') deviceUuid: string,
|
|
) {
|
|
try {
|
|
return await this.deviceService.getDeviceInstructionByDeviceId(
|
|
deviceUuid,
|
|
);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get(':deviceUuid/functions/status')
|
|
async getDevicesInstructionStatus(@Param('deviceUuid') deviceUuid: string) {
|
|
try {
|
|
return await this.deviceService.getDevicesInstructionStatus(deviceUuid);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('control')
|
|
async controlDevice(@Body() controlDeviceDto: ControlDeviceDto) {
|
|
try {
|
|
return await this.deviceService.controlDevice(controlDeviceDto);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post(':deviceUuid/firmware/:firmwareVersion')
|
|
async updateDeviceFirmware(
|
|
@Param('deviceUuid') deviceUuid: string,
|
|
@Param('firmwareVersion') firmwareVersion: number,
|
|
) {
|
|
try {
|
|
return await this.deviceService.updateDeviceFirmware(
|
|
deviceUuid,
|
|
firmwareVersion,
|
|
);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('getaway/:gatewayUuid/devices')
|
|
async getDevicesInGetaway(@Param('gatewayUuid') gatewayUuid: string) {
|
|
try {
|
|
return await this.deviceService.getDevicesInGetaway(gatewayUuid);
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
}
|