device.controller.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'
  2. import { DeviceService } from './device.service'
  3. import { PageRequest } from 'src/common/dto/page-request'
  4. import { Device } from './entities/device.entity'
  5. import { Public } from 'src/auth/public.decorator'
  6. import { HasRoles } from 'src/auth/roles.decorator'
  7. import { SendMessageDto } from './dtos/send-message.dto'
  8. @Controller('device')
  9. export class DeviceController {
  10. constructor(private readonly deviceService: DeviceService) {}
  11. @Post('/')
  12. async findAllDevice(@Body() page: PageRequest<Device>) {
  13. return await this.deviceService.findAllDevice(page)
  14. }
  15. @Get('/:id')
  16. @Public()
  17. async findByIds(@Param('id') id: string) {
  18. return await this.deviceService.findById(id)
  19. }
  20. @Delete('/:id')
  21. async deviceDisconnect(@Param('id') id: string) {
  22. return await this.deviceService.deleteDevice(id)
  23. }
  24. @Post('/update')
  25. async updateDevice(@Body() data: any) {
  26. const id = data.id
  27. delete data.id
  28. return await this.deviceService.updateDevice(id, data)
  29. }
  30. @Post('/:id/sendMessage')
  31. @HasRoles('admin')
  32. async installApk(@Param('id') id: string, @Body() message: SendMessageDto) {
  33. return await this.deviceService.sendMessage(id, message)
  34. }
  35. @Post('/callback')
  36. async callback(@Body() data: any) {
  37. return await this.deviceService.callback(data)
  38. }
  39. @Post('/:id/removePinTask')
  40. async task(@Param('id') id: string) {
  41. return await this.deviceService.removePinTask(id)
  42. }
  43. }