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