mirror of
https://github.com/SyncrowIOT/backend.git
synced 2026-10-23 13:57:54 +00:00
subspace check
This commit is contained in:
@@ -43,6 +43,12 @@ export class SubSpaceService {
|
||||
queryRunner: QueryRunner,
|
||||
): Promise<SubspaceEntity[]> {
|
||||
try {
|
||||
const subspaceNames = subspaceData.map((data) => data.subspaceName);
|
||||
|
||||
await this.checkExistingNamesInSpace(
|
||||
subspaceNames,
|
||||
subspaceData[0].space,
|
||||
);
|
||||
const subspaces = subspaceData.map((data) =>
|
||||
queryRunner.manager.create(this.subspaceRepository.target, data),
|
||||
);
|
||||
@@ -143,6 +149,10 @@ export class SubSpaceService {
|
||||
);
|
||||
|
||||
try {
|
||||
await this.checkExistingNamesInSpace(
|
||||
[addSubspaceDto.subspaceName],
|
||||
space,
|
||||
);
|
||||
const newSubspace = this.subspaceRepository.create({
|
||||
...addSubspaceDto,
|
||||
space,
|
||||
@@ -450,10 +460,7 @@ export class SubSpaceService {
|
||||
}
|
||||
}
|
||||
|
||||
private async validateName(
|
||||
names: string[],
|
||||
space: SpaceEntity,
|
||||
): Promise<void> {
|
||||
private async checkForDuplicateNames(names: string[]): Promise<void> {
|
||||
const seenNames = new Set<string>();
|
||||
const duplicateNames = new Set<string>();
|
||||
|
||||
@@ -469,14 +476,20 @@ export class SubSpaceService {
|
||||
HttpStatus.CONFLICT,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private async checkExistingNamesInSpace(
|
||||
names: string[],
|
||||
space: SpaceEntity,
|
||||
): Promise<void> {
|
||||
const existingNames = await this.subspaceRepository.find({
|
||||
select: ['subspaceName'],
|
||||
where: {
|
||||
subspaceName: In([...seenNames]),
|
||||
subspaceName: In(names),
|
||||
space: {
|
||||
uuid: space.uuid,
|
||||
},
|
||||
disabled: false,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -490,4 +503,12 @@ export class SubSpaceService {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private async validateName(
|
||||
names: string[],
|
||||
space: SpaceEntity,
|
||||
): Promise<void> {
|
||||
await this.checkForDuplicateNames(names);
|
||||
await this.checkExistingNamesInSpace(names, space);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user