diff --git a/src/invite-user/invite-user.module.ts b/src/invite-user/invite-user.module.ts index 6b77d1d..7efbe2f 100644 --- a/src/invite-user/invite-user.module.ts +++ b/src/invite-user/invite-user.module.ts @@ -25,7 +25,10 @@ import { ProjectRepository } from '@app/common/modules/project/repositiories'; import { TuyaService } from '@app/common/integrations/tuya/services/tuya.service'; import { UserService, UserSpaceService } from 'src/users/services'; import { UserDevicePermissionService } from 'src/user-device-permission/services'; -import { DeviceUserPermissionRepository } from '@app/common/modules/device/repositories'; +import { + DeviceRepository, + DeviceUserPermissionRepository, +} from '@app/common/modules/device/repositories'; import { PermissionTypeRepository } from '@app/common/modules/permission/repositories'; import { ProjectUserService } from 'src/project/services/project-user.service'; import { RoleTypeRepository } from '@app/common/modules/role-type/repositories'; @@ -44,6 +47,7 @@ import { TimeZoneRepository } from '@app/common/modules/timezone/repositories'; SpaceUserService, ValidationService, UserSpaceRepository, + DeviceRepository, CommunityService, SpaceRepository, SpaceModelRepository, diff --git a/src/space/services/space-device.service.ts b/src/space/services/space-device.service.ts index 505e49f..aaa7d12 100644 --- a/src/space/services/space-device.service.ts +++ b/src/space/services/space-device.service.ts @@ -26,7 +26,7 @@ export class SpaceDeviceService { spaceUuid, ); - if (space.devices.length === 0) { + if (!space.devices || space.devices.length === 0) { throw new HttpException( 'The space does not contain any devices.', HttpStatus.BAD_REQUEST, diff --git a/src/space/services/space-validation.service.ts b/src/space/services/space-validation.service.ts index 304586b..76750dd 100644 --- a/src/space/services/space-validation.service.ts +++ b/src/space/services/space-validation.service.ts @@ -9,6 +9,7 @@ import { } from '@app/common/modules/space-model'; import { ProjectRepository } from '@app/common/modules/project/repositiories'; import { CommunityRepository } from '@app/common/modules/community/repositories'; +import { DeviceRepository } from '@app/common/modules/device/repositories'; @Injectable() export class ValidationService { @@ -19,6 +20,7 @@ export class ValidationService { private readonly projectRepository: ProjectRepository, private readonly communityRepository: CommunityRepository, private readonly spaceModelRepository: SpaceModelRepository, + private readonly deviceRepository: DeviceRepository, ) {} async validateCommunityAndProject( @@ -65,7 +67,9 @@ export class ValidationService { spaceUuid?: string, ): Promise { await this.validateCommunityAndProject(communityUuid, projectUuid); + const space = await this.validateSpace(spaceUuid); + return space; } @@ -79,10 +83,6 @@ export class ValidationService { 'tags', 'subspaces.tags', 'subspaces.devices', - //'devices', - //'devices.productDevice', - //'devices.tag', - // 'devices.subspace', ], }); @@ -93,6 +93,14 @@ export class ValidationService { ); } + const devices = await this.deviceRepository.find({ + where: { spaceDevice: { uuid: spaceUuid } }, + select: ['uuid', 'deviceTuyaUuid', 'isActive', 'createdAt', 'updatedAt'], + relations: ['productDevice', 'tag', 'subspace'], + }); + + space.devices = devices; + return space; }