mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 09:24:54 +00:00
refactor: update PowerClampController and service to use PowerClampParamsDto for parameter handling
This commit is contained in:
@ -6,6 +6,7 @@ import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
|||||||
import { PowerClampService } from '../services/power-clamp.service';
|
import { PowerClampService } from '../services/power-clamp.service';
|
||||||
import { GetPowerClampDto } from '../dto/get-power-clamp.dto';
|
import { GetPowerClampDto } from '../dto/get-power-clamp.dto';
|
||||||
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
||||||
|
import { PowerClampParamsDto } from '../dto/power-clamp-params.dto';
|
||||||
|
|
||||||
@ApiTags('Power Clamp Module')
|
@ApiTags('Power Clamp Module')
|
||||||
@Controller({
|
@Controller({
|
||||||
@ -23,12 +24,9 @@ export class PowerClampController {
|
|||||||
description: ControllerRoute.PowerClamp.ACTIONS.GET_ENERGY_DESCRIPTION,
|
description: ControllerRoute.PowerClamp.ACTIONS.GET_ENERGY_DESCRIPTION,
|
||||||
})
|
})
|
||||||
async getPowerClampData(
|
async getPowerClampData(
|
||||||
@Param('powerClampUuid') powerClampUuid: string,
|
@Param() params: PowerClampParamsDto,
|
||||||
@Query() params: GetPowerClampDto,
|
@Query() query: GetPowerClampDto,
|
||||||
): Promise<BaseResponseDto> {
|
): Promise<BaseResponseDto> {
|
||||||
return await this.powerClampService.getPowerClampData(
|
return await this.powerClampService.getPowerClampData(params, query);
|
||||||
powerClampUuid,
|
|
||||||
params,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
6
src/power-clamp/dto/power-clamp-params.dto.ts
Normal file
6
src/power-clamp/dto/power-clamp-params.dto.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { IsUUID } from 'class-validator';
|
||||||
|
|
||||||
|
export class PowerClampParamsDto {
|
||||||
|
@IsUUID('4', { message: 'Invalid UUID format' })
|
||||||
|
powerClampUuid: string;
|
||||||
|
}
|
||||||
@ -7,6 +7,7 @@ import {
|
|||||||
PowerClampHourlyRepository,
|
PowerClampHourlyRepository,
|
||||||
PowerClampMonthlyRepository,
|
PowerClampMonthlyRepository,
|
||||||
} from '@app/common/modules/power-clamp/repositories';
|
} from '@app/common/modules/power-clamp/repositories';
|
||||||
|
import { DeviceRepository } from '@app/common/modules/device/repositories';
|
||||||
@Module({
|
@Module({
|
||||||
imports: [ConfigModule],
|
imports: [ConfigModule],
|
||||||
controllers: [PowerClampController],
|
controllers: [PowerClampController],
|
||||||
@ -15,6 +16,7 @@ import {
|
|||||||
PowerClampDailyRepository,
|
PowerClampDailyRepository,
|
||||||
PowerClampHourlyRepository,
|
PowerClampHourlyRepository,
|
||||||
PowerClampMonthlyRepository,
|
PowerClampMonthlyRepository,
|
||||||
|
DeviceRepository,
|
||||||
],
|
],
|
||||||
exports: [PowerClampService],
|
exports: [PowerClampService],
|
||||||
})
|
})
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import {
|
|||||||
PowerClampMonthlyRepository,
|
PowerClampMonthlyRepository,
|
||||||
} from '@app/common/modules/power-clamp/repositories';
|
} from '@app/common/modules/power-clamp/repositories';
|
||||||
import { SuccessResponseDto } from '@app/common/dto/success.response.dto';
|
import { SuccessResponseDto } from '@app/common/dto/success.response.dto';
|
||||||
|
import { PowerClampParamsDto } from '../dto/power-clamp-params.dto';
|
||||||
|
import { DeviceRepository } from '@app/common/modules/device/repositories';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class PowerClampService {
|
export class PowerClampService {
|
||||||
@ -13,12 +15,24 @@ export class PowerClampService {
|
|||||||
private readonly powerClampDailyRepository: PowerClampDailyRepository,
|
private readonly powerClampDailyRepository: PowerClampDailyRepository,
|
||||||
private readonly powerClampHourlyRepository: PowerClampHourlyRepository,
|
private readonly powerClampHourlyRepository: PowerClampHourlyRepository,
|
||||||
private readonly powerClampMonthlyRepository: PowerClampMonthlyRepository,
|
private readonly powerClampMonthlyRepository: PowerClampMonthlyRepository,
|
||||||
|
private readonly deviceRepository: DeviceRepository,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async getPowerClampData(powerClampUuid: string, params: GetPowerClampDto) {
|
async getPowerClampData(
|
||||||
const { dayDate, monthDate, year } = params;
|
params: PowerClampParamsDto,
|
||||||
|
query: GetPowerClampDto,
|
||||||
|
) {
|
||||||
|
const { dayDate, monthDate, year } = query;
|
||||||
|
const { powerClampUuid } = params;
|
||||||
try {
|
try {
|
||||||
|
const device = await this.deviceRepository.findOne({
|
||||||
|
where: {
|
||||||
|
uuid: powerClampUuid,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (!device) {
|
||||||
|
throw new HttpException('Power clamp not found', HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
if (dayDate) {
|
if (dayDate) {
|
||||||
const data = await this.powerClampHourlyRepository
|
const data = await this.powerClampHourlyRepository
|
||||||
.createQueryBuilder('hourly')
|
.createQueryBuilder('hourly')
|
||||||
@ -72,8 +86,8 @@ export class PowerClampService {
|
|||||||
return this.buildResponse(`Power clamp data fetched successfully`, []);
|
return this.buildResponse(`Power clamp data fetched successfully`, []);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new HttpException(
|
throw new HttpException(
|
||||||
'Error fetching power clamp data',
|
error.message || 'Error fetching power clamp data',
|
||||||
HttpStatus.INTERNAL_SERVER_ERROR,
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user