subspace check

This commit is contained in:
hannathkadher
2024-12-27 09:32:20 +04:00
parent fcf1964599
commit 30d0866579
@@ -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);
}
}