diff --git a/src/device/controllers/device.controller.ts b/src/device/controllers/device.controller.ts index d0ebbc9..7a2543e 100644 --- a/src/device/controllers/device.controller.ts +++ b/src/device/controllers/device.controller.ts @@ -192,7 +192,7 @@ export class DeviceController { ); } @ApiBearerAuth() - // @UseGuards(JwtAuthGuard) + @UseGuards(JwtAuthGuard) @Get(':powerClampUuid/power-clamp/status') async getPowerClampInstructionStatus( @Param('powerClampUuid') powerClampUuid: string, diff --git a/src/device/services/device.service.ts b/src/device/services/device.service.ts index db1cfb4..96cba90 100644 --- a/src/device/services/device.service.ts +++ b/src/device/services/device.service.ts @@ -977,11 +977,43 @@ export class DeviceService { const deviceStatus = await this.getPowerClampInstructionStatusTuya( deviceDetails.deviceTuyaUuid, ); + const statusList = deviceStatus.result.properties as { + code: string; + value: any; + }[]; + + const groupedStatus = statusList.reduce( + (acc, currentStatus) => { + const { code } = currentStatus; + + if (code.includes('A')) { + acc.phaseA.push(currentStatus); + } else if (code.includes('B')) { + acc.phaseB.push(currentStatus); + } else if (code.includes('C')) { + acc.phaseC.push(currentStatus); + } else { + acc.general.push(currentStatus); + } + return acc; + }, + { + phaseA: [] as { code: string; value: any }[], + phaseB: [] as { code: string; value: any }[], + phaseC: [] as { code: string; value: any }[], + general: [] as { code: string; value: any }[], + }, + ); return { productUuid: deviceDetails.productDevice.uuid, productType: deviceDetails.productDevice.prodType, - status: deviceStatus.result.properties, + status: { + phaseA: groupedStatus.phaseA, + phaseB: groupedStatus.phaseB, + phaseC: groupedStatus.phaseC, + general: groupedStatus.general, + }, }; } catch (error) { throw new HttpException(