Skip to content

Commit 73b9a2d

Browse files
committed
Refactor: 타 도메인의 EdgeRepository 직접 의존 제거 및 EdgeService 메서드 추가
- BranchServiceTest를 EdgeService 의존 기준으로 수정
1 parent e940a54 commit 73b9a2d

6 files changed

Lines changed: 33 additions & 15 deletions

File tree

src/main/java/io/ejangs/docsa/domain/branch/app/BranchService.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
import io.ejangs.docsa.domain.commit.dao.mongodb.CommitBlockSequenceRepository;
1212
import io.ejangs.docsa.domain.commit.entity.Commit;
1313
import io.ejangs.docsa.domain.doc.app.create.DocQueryService;
14-
import io.ejangs.docsa.domain.edge.dao.mysql.EdgeRepository;
14+
import io.ejangs.docsa.domain.edge.app.EdgeService;
1515
import io.ejangs.docsa.domain.doc.entity.Doc;
16-
import io.ejangs.docsa.domain.edge.entity.Edge;
1716
import io.ejangs.docsa.global.exception.CustomException;
1817
import io.ejangs.docsa.global.exception.errorcode.BranchErrorCode;
1918
import io.ejangs.docsa.global.exception.errorcode.DocErrorCode;
@@ -39,7 +38,7 @@ public class BranchService {
3938
private final BranchQueryService branchQueryService;
4039
private final CommitQueryService commitQueryService;
4140
private final CommitBlockSequenceRepository commitBlockSequenceRepository;
42-
private final EdgeRepository edgeRepository;
41+
private final EdgeService edgeService;
4342
private final ApplicationEventPublisher eventPublisher;
4443
private final BranchCreateOrchestrator branchCreateOrchestrator;
4544

@@ -137,9 +136,7 @@ public void deleteBranch(Long documentId, Long branchId, Long userId) {
137136
}
138137

139138
// 4. Edge 삭제
140-
List<Edge> edgesToDelete =
141-
edgeRepository.findAllByPrevCommitIdInOrNextCommitIdIn(commitsIds, commitsIds);
142-
edgeRepository.deleteAll(edgesToDelete);
139+
edgeService.deleteEdgesConnectedToCommits(commitsIds);
143140

144141
// 5. 브랜치에서 삭제 가능한 블록과 시퀀스, SaveContent 삭제 이벤트 발행
145142
MongoIdsDto deletableMongoIds = collectDeletableMongoDataForBranch(branch, branchCommits);

src/main/java/io/ejangs/docsa/domain/commit/app/CommitService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ public class CommitService {
3535
private final DocQueryService docQueryService;
3636
private final BranchQueryService branchQueryService;
3737
private final CommitQueryService commitQueryService;
38+
private final EdgeService edgeService;
39+
3840
private final CommitCreateOrchestrator commitCreateOrchestrator;
3941
private final MergeOrchestrator mergeCommitOrchestrator;
40-
private final EdgeService edgeService;
4142

4243
private final CommitContentAssembler assembler;
4344
private final MongoIdsCollector mongoIdsCollector;

src/main/java/io/ejangs/docsa/domain/doc/app/DocService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import io.ejangs.docsa.domain.commit.app.CommitQueryService;
66
import io.ejangs.docsa.domain.doc.app.create.DocCreateOrchestrator;
77
import io.ejangs.docsa.domain.doc.app.create.DocQueryService;
8-
import io.ejangs.docsa.domain.edge.dao.mysql.EdgeRepository;
8+
import io.ejangs.docsa.domain.edge.app.EdgeService;
99
import io.ejangs.docsa.domain.edge.dto.graph.BranchGraphDto;
1010
import io.ejangs.docsa.domain.edge.dto.graph.CommitGraphDto;
1111
import io.ejangs.docsa.domain.edge.dto.graph.EdgeDto;
@@ -44,7 +44,7 @@ public class DocService {
4444
private final DocQueryService docQueryService;
4545
private final BranchQueryService branchQueryService;
4646
private final CommitQueryService commitQueryService;
47-
private final EdgeRepository edgeRepository;
47+
private final EdgeService edgeService;
4848

4949
private final DocCreateOrchestrator docCreateOrchestrator;
5050

@@ -105,7 +105,7 @@ public GraphResponse getGraph(Long userId, Long documentId) {
105105
throw new CustomException(BranchErrorCode.BRANCH_NOT_FOUND);
106106
}
107107
List<CommitGraphDto> commits = commitQueryService.getCommitGraphList(documentId);
108-
List<EdgeDto> edges = edgeRepository.findEdgesByDocId(documentId);
108+
List<EdgeDto> edges = edgeService.getEdgeDtoByDocId(documentId);
109109

110110
return GraphMapper.toCommitGraphResponse(docTitle, commits, edges, branches);
111111
}
@@ -119,7 +119,7 @@ public void delete(Long docId, Long userId) {
119119
List<Branch> branches = doc.getBranches();
120120

121121
MongoIdsDto docDeleteMongoIds = mongoIdsCollector.collectFrom(branches);
122-
edgeRepository.deleteAll(edges);
122+
edgeService.deleteAll(edges);
123123

124124
user.removeDocument(doc);
125125

src/main/java/io/ejangs/docsa/domain/edge/app/EdgeService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.ejangs.docsa.domain.commit.entity.Commit;
44
import io.ejangs.docsa.domain.edge.dao.mysql.EdgeRepository;
55
import io.ejangs.docsa.domain.doc.entity.Doc;
6+
import io.ejangs.docsa.domain.edge.dto.graph.EdgeDto;
67
import io.ejangs.docsa.domain.edge.entity.Edge;
78
import java.util.List;
89
import lombok.RequiredArgsConstructor;
@@ -18,6 +19,21 @@ public Edge saveEdge(Edge edge) {
1819
return edgeRepository.save(edge);
1920
}
2021

22+
public List<EdgeDto> getEdgeDtoByDocId(Long docId) {
23+
return edgeRepository.findEdgesByDocId(docId);
24+
}
25+
26+
public void deleteEdgesConnectedToCommits(List<Long> commitIds) {
27+
List<Edge> deleteTarget = edgeRepository.findAllByPrevCommitIdInOrNextCommitIdIn(
28+
commitIds, commitIds);
29+
30+
deleteAll(deleteTarget);
31+
}
32+
33+
public void deleteAll(List<Edge> edges) {
34+
edgeRepository.deleteAll(edges);
35+
}
36+
2137
public List<Commit> cutEdge(Doc doc, Long commitId) {
2238

2339
List<Edge> edges = edgeRepository.findByNextCommitId(commitId);

src/test/java/io/ejangs/docsa/domain/branch/app/BranchServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.ejangs.docsa.domain.commit.document.CommitBlockSequence;
1111
import io.ejangs.docsa.domain.commit.entity.Commit;
1212
import io.ejangs.docsa.domain.doc.app.create.DocQueryService;
13+
import io.ejangs.docsa.domain.edge.app.EdgeService;
1314
import io.ejangs.docsa.domain.edge.dao.mysql.EdgeRepository;
1415
import io.ejangs.docsa.domain.doc.entity.Doc;
1516
import io.ejangs.docsa.domain.save.entity.Save;
@@ -46,7 +47,7 @@ class BranchServiceTest {
4647
private DocQueryService docQueryService;
4748

4849
@Mock
49-
private EdgeRepository edgeRepository;
50+
private EdgeService edgeService;
5051

5152
@Mock
5253
private CommitBlockSequenceRepository commitBlockSequenceRepository;
@@ -261,8 +262,7 @@ void deleteBranch_success() {
261262
.checkBranchInDocOwnedByUser(documentId, branchId, userId);
262263
when(branchQueryService.getById(branchId)).thenReturn(branch);
263264
when(branchQueryService.existsSubBranchByFromCommitIds(any())).thenReturn(false);
264-
when(edgeRepository.findAllByPrevCommitIdInOrNextCommitIdIn(any(), any())).thenReturn(
265-
List.of()); // 빈 리스트로 가정
265+
doNothing().when(edgeService).deleteEdgesConnectedToCommits(any());
266266

267267
when(commitBlockSequenceRepository.findById("seq1")).thenReturn(Optional.of(seq1));
268268
when(commitBlockSequenceRepository.findById("seq2")).thenReturn(Optional.of(seq2));

src/test/java/io/ejangs/docsa/domain/doc/unit/DocServiceUnitTests.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.ejangs.docsa.domain.doc.app.DocService;
1616
import io.ejangs.docsa.domain.doc.app.create.DocCreateOrchestrator;
1717
import io.ejangs.docsa.domain.doc.dao.mysql.DocRepository;
18+
import io.ejangs.docsa.domain.edge.app.EdgeService;
1819
import io.ejangs.docsa.domain.edge.dao.mysql.EdgeRepository;
1920
import io.ejangs.docsa.domain.doc.dto.RecentActivityDto;
2021
import io.ejangs.docsa.domain.doc.dto.RecentActivityDto.RecentType;
@@ -83,6 +84,9 @@ public class DocServiceUnitTests {
8384
@Mock
8485
private EdgeRepository edgeRepository;
8586

87+
@Mock
88+
private EdgeService edgeService;
89+
8690
@Mock
8791
private MongoIdsCollector mongoIdsCollector;
8892

@@ -319,7 +323,7 @@ void getGraph_shouldReturnGraphResponse_whenDocExists() {
319323

320324
when(branchQueryService.getBranchGraphList(docId)).thenReturn(branches);
321325
when(commitQueryService.getCommitGraphList(docId)).thenReturn(commits);
322-
when(edgeRepository.findEdgesByDocId(docId)).thenReturn(edges);
326+
when(edgeService.getEdgeDtoByDocId(docId)).thenReturn(edges);
323327

324328
GraphResponse response = docService.getGraph(userId, docId);
325329

0 commit comments

Comments
 (0)