Skip to content

Commit

Permalink
fix: json pasing 안되는 이슈 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
fru1tworld committed Dec 3, 2024
1 parent b6b2994 commit 7ea841b
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions packages/backend/src/space/space.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ export class SpaceService {

return breadcrumb;
}

async deleteById(id: string) {
this.logger.log(`ID가 ${id}인 스페이스와 그 하위 노드를 삭제합니다.`);

Expand All @@ -127,10 +128,20 @@ export class SpaceService {
throw new Error(`ID가 ${id}인 스페이스를 찾을 수 없습니다.`);
}

const nodes: Record<string, Node> = JSON.parse(space.nodes);
let nodes: Record<string, Node>;
try {
nodes = JSON.parse(space.nodes);
this.logger.debug(`노드 데이터 확인: ${JSON.stringify(nodes)}`);
} catch (error) {
this.logger.error(`노드 데이터 파싱 실패 - ID: ${id}`, error.stack);
throw new Error('노드 데이터 파싱 중 오류가 발생했습니다.');
}

for (const nodeId in nodes) {
const node = nodes[nodeId];
this.logger.debug(
`노드 순회 - ID: ${nodeId}, 데이터: ${JSON.stringify(node)}`,
);

switch (node.type) {
case 'note':
Expand All @@ -139,10 +150,16 @@ export class SpaceService {
break;

case 'subspace':
this.logger.log(`서브스페이스 노드 삭제 - ID: ${node.id}`);
if (node.src) {
await this.deleteById(node.src);
if (!node.src) {
this.logger.warn(
`서브스페이스 노드에 src가 없습니다 - ID: ${node.id}`,
);
continue;
}
this.logger.log(
`서브스페이스 노드 삭제 - ID: ${node.id}, 하위 스페이스 ID: ${node.src}`,
);
await this.deleteById(node.src);
break;

default:
Expand Down

0 comments on commit 7ea841b

Please sign in to comment.