Add SceneDeviceRepository and update deleteScene method

This commit is contained in:
faris Aljohari
2024-11-26 22:26:46 -06:00
parent b15a5ac691
commit bae48c02fe

View File

@ -39,6 +39,7 @@ import { SuccessResponseDto } from '@app/common/dto/success.response.dto';
import { HttpStatusCode } from 'axios';
import { ConvertedAction } from '@app/common/integrations/tuya/interfaces';
import { DeviceService } from 'src/device/services';
import { SceneDeviceRepository } from '@app/common/modules/scene-device/repositories';
@Injectable()
export class SceneService {
@ -46,6 +47,7 @@ export class SceneService {
private readonly spaceRepository: SpaceRepository,
private readonly sceneIconRepository: SceneIconRepository,
private readonly sceneRepository: SceneRepository,
private readonly sceneDeviceRepository: SceneDeviceRepository,
private readonly tuyaService: TuyaService,
@Inject(forwardRef(() => DeviceService))
private readonly deviceService: DeviceService,
@ -449,13 +451,18 @@ export class SceneService {
}
async deleteScene(params: SceneParamDto): Promise<BaseResponseDto> {
const { sceneUuid } = params;
try {
const { sceneUuid } = params;
const scene = await this.findScene(sceneUuid);
const space = await this.getSpaceByUuid(scene.space.uuid);
await this.delete(scene.sceneTuyaUuid, space.spaceTuyaUuid);
await this.sceneRepository.delete({ uuid: sceneUuid });
await this.sceneDeviceRepository.delete({
scene: { uuid: sceneUuid },
});
await this.sceneRepository.delete({
uuid: sceneUuid,
});
return new SuccessResponseDto({
message: `Scene with ID ${sceneUuid} deleted successfully`,
});