mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-27 11:04:54 +00:00
Merge pull request #238 from SyncrowIOT:bugfix/fix-in-get-space
Bugfix/fix-in-get-space
This commit is contained in:
@ -25,7 +25,10 @@ import { ProjectRepository } from '@app/common/modules/project/repositiories';
|
|||||||
import { TuyaService } from '@app/common/integrations/tuya/services/tuya.service';
|
import { TuyaService } from '@app/common/integrations/tuya/services/tuya.service';
|
||||||
import { UserService, UserSpaceService } from 'src/users/services';
|
import { UserService, UserSpaceService } from 'src/users/services';
|
||||||
import { UserDevicePermissionService } from 'src/user-device-permission/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 { PermissionTypeRepository } from '@app/common/modules/permission/repositories';
|
||||||
import { ProjectUserService } from 'src/project/services/project-user.service';
|
import { ProjectUserService } from 'src/project/services/project-user.service';
|
||||||
import { RoleTypeRepository } from '@app/common/modules/role-type/repositories';
|
import { RoleTypeRepository } from '@app/common/modules/role-type/repositories';
|
||||||
@ -44,6 +47,7 @@ import { TimeZoneRepository } from '@app/common/modules/timezone/repositories';
|
|||||||
SpaceUserService,
|
SpaceUserService,
|
||||||
ValidationService,
|
ValidationService,
|
||||||
UserSpaceRepository,
|
UserSpaceRepository,
|
||||||
|
DeviceRepository,
|
||||||
CommunityService,
|
CommunityService,
|
||||||
SpaceRepository,
|
SpaceRepository,
|
||||||
SpaceModelRepository,
|
SpaceModelRepository,
|
||||||
|
|||||||
@ -26,7 +26,7 @@ export class SpaceDeviceService {
|
|||||||
spaceUuid,
|
spaceUuid,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (space.devices.length === 0) {
|
if (!space.devices || space.devices.length === 0) {
|
||||||
throw new HttpException(
|
throw new HttpException(
|
||||||
'The space does not contain any devices.',
|
'The space does not contain any devices.',
|
||||||
HttpStatus.BAD_REQUEST,
|
HttpStatus.BAD_REQUEST,
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import {
|
|||||||
} from '@app/common/modules/space-model';
|
} from '@app/common/modules/space-model';
|
||||||
import { ProjectRepository } from '@app/common/modules/project/repositiories';
|
import { ProjectRepository } from '@app/common/modules/project/repositiories';
|
||||||
import { CommunityRepository } from '@app/common/modules/community/repositories';
|
import { CommunityRepository } from '@app/common/modules/community/repositories';
|
||||||
|
import { DeviceRepository } from '@app/common/modules/device/repositories';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ValidationService {
|
export class ValidationService {
|
||||||
@ -19,6 +20,7 @@ export class ValidationService {
|
|||||||
private readonly projectRepository: ProjectRepository,
|
private readonly projectRepository: ProjectRepository,
|
||||||
private readonly communityRepository: CommunityRepository,
|
private readonly communityRepository: CommunityRepository,
|
||||||
private readonly spaceModelRepository: SpaceModelRepository,
|
private readonly spaceModelRepository: SpaceModelRepository,
|
||||||
|
private readonly deviceRepository: DeviceRepository,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async validateCommunityAndProject(
|
async validateCommunityAndProject(
|
||||||
@ -65,7 +67,9 @@ export class ValidationService {
|
|||||||
spaceUuid?: string,
|
spaceUuid?: string,
|
||||||
): Promise<SpaceEntity> {
|
): Promise<SpaceEntity> {
|
||||||
await this.validateCommunityAndProject(communityUuid, projectUuid);
|
await this.validateCommunityAndProject(communityUuid, projectUuid);
|
||||||
|
|
||||||
const space = await this.validateSpace(spaceUuid);
|
const space = await this.validateSpace(spaceUuid);
|
||||||
|
|
||||||
return space;
|
return space;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,10 +83,6 @@ export class ValidationService {
|
|||||||
'tags',
|
'tags',
|
||||||
'subspaces.tags',
|
'subspaces.tags',
|
||||||
'subspaces.devices',
|
'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;
|
return space;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user