Browse Source

chore(api): get user device list

pull/1/head
isra el 3 years ago
parent
commit
853811553e
  1. 14
      api/src/gateway/gateway.controller.ts
  2. 16
      api/src/gateway/gateway.service.ts

14
api/src/gateway/gateway.controller.ts

@ -6,6 +6,7 @@ import {
Post,
UseGuards,
Request,
Get,
} from '@nestjs/common'
import { ApiBearerAuth, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'
import { AuthGuard } from 'src/auth/auth.guard'
@ -31,6 +32,19 @@ export class GatewayController {
return { data }
}
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'List of registered devices' })
@ApiQuery({
name: 'apiKey',
required: false,
description: 'Required if jwt bearer token not provided',
})
@Get('/devices')
async getDevices(@Body() input: RegisterDeviceInputDTO, @Request() req) {
const data = await this.gatewayService.getDevicesForUser(req.user)
return { data }
}
@ApiOperation({ summary: 'Update device' })
@ApiQuery({
name: 'apiKey',

16
api/src/gateway/gateway.service.ts

@ -15,7 +15,21 @@ export class GatewayService {
input: RegisterDeviceInputDTO,
user: User,
): Promise<any> {
return await this.deviceModel.create({ ...input, user })
const device = await this.deviceModel.findOne({
user: user._id,
model: input.model,
buildId: input.buildId,
})
if (device) {
return await this.updateDevice(device._id, { ...input, enabled: true })
} else {
return await this.deviceModel.create({ ...input, user })
}
}
async getDevicesForUser(user: User): Promise<any> {
return await this.deviceModel.find({ user: user._id })
}
async updateDevice(

Loading…
Cancel
Save