Merge pull request #483 from SyncrowIOT/refactor/duplicate-space-response

return proper response in duplicate space API
This commit is contained in:
raf-dev1
2025-07-23 13:43:33 +03:00
committed by GitHub

View File

@ -204,20 +204,23 @@ export class SpaceService {
projectUuid, projectUuid,
queryRunner, queryRunner,
); );
await this.handleSpaceDuplication(spaceUuid, dto.spaceName, queryRunner);
const result = await this.handleSpaceDuplication(
spaceUuid,
dto.spaceName,
queryRunner,
);
await queryRunner.commitTransaction(); await queryRunner.commitTransaction();
const { data } = await this.getSpacesHierarchyForCommunity(
{
projectUuid,
communityUuid,
},
{ onlyWithDevices: false },
);
return new SuccessResponseDto({ return new SuccessResponseDto({
message: `Space with ID ${spaceUuid} successfully duplicated`, message: `Space with ID ${spaceUuid} successfully duplicated`,
data: result, data,
}); });
} catch (error) { } catch (error) {
await queryRunner.rollbackTransaction(); await queryRunner.rollbackTransaction();
console.log((error as Error).stack);
throw new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR); throw new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR);
} finally { } finally {
await queryRunner.release(); await queryRunner.release();
@ -239,7 +242,6 @@ export class SpaceService {
], ],
}); });
const clonedSpace = structuredClone(space); const clonedSpace = structuredClone(space);
console.log(`creating duplicate for space ${clonedSpace.spaceName}`);
const newSpace = queryRunner.manager.create(SpaceEntity, { const newSpace = queryRunner.manager.create(SpaceEntity, {
...clonedSpace, ...clonedSpace,
spaceName: newSpaceName || clonedSpace.spaceName, spaceName: newSpaceName || clonedSpace.spaceName,
@ -250,7 +252,6 @@ export class SpaceService {
uuid: uuidV4(), uuid: uuidV4(),
}); });
console.log(`handling space ${newSpace.spaceName} allocations`);
if (clonedSpace.productAllocations?.length) { if (clonedSpace.productAllocations?.length) {
newSpace.productAllocations = this.copySpaceAllocations( newSpace.productAllocations = this.copySpaceAllocations(
newSpace, newSpace,
@ -258,7 +259,6 @@ export class SpaceService {
queryRunner, queryRunner,
); );
} }
console.log(`handling space ${newSpace.spaceName} subspaces`);
if (clonedSpace.subspaces?.length) { if (clonedSpace.subspaces?.length) {
newSpace.subspaces = this.copySpaceSubspaces( newSpace.subspaces = this.copySpaceSubspaces(
newSpace, newSpace,
@ -268,7 +268,6 @@ export class SpaceService {
} }
const savedSpace = await queryRunner.manager.save(newSpace); const savedSpace = await queryRunner.manager.save(newSpace);
console.log(`handling space ${newSpace.spaceName} children`);
if (clonedSpace.children?.length) { if (clonedSpace.children?.length) {
for (const child of clonedSpace.children) { for (const child of clonedSpace.children) {
if (child.disabled) continue; if (child.disabled) continue;