Skip to content

Commit 5270ee6

Browse files
committed
✨ [feat] 노드 수정 api 구현
1 parent e778568 commit 5270ee6

File tree

5 files changed

+59
-9
lines changed

5 files changed

+59
-9
lines changed

src/main/java/com/going/server/domain/graph/controller/GraphController.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.going.server.domain.graph.controller;
22

3-
import com.going.server.domain.graph.dto.GraphListDto;
4-
import com.going.server.domain.graph.dto.KnowledgeGraphDto;
5-
import com.going.server.domain.graph.dto.NodeAddDto;
6-
import com.going.server.domain.graph.dto.NodeDto;
3+
import com.going.server.domain.graph.dto.*;
74
import com.going.server.domain.graph.service.GraphService;
85
import com.going.server.global.response.SuccessResponse;
96
import io.swagger.v3.oas.annotations.Operation;
@@ -138,4 +135,30 @@ public SuccessResponse<?> deleteNode(
138135
return SuccessResponse.empty();
139136
}
140137

138+
@PatchMapping("/{graphId}/{nodeId}")
139+
@Operation(summary = "노드 수정", description = "지식 그래프에서 노드를 수정합니다.")
140+
@ApiResponses({
141+
@ApiResponse(
142+
responseCode = "200",
143+
description = "노드가 성공적으로 수정되었습니다.",
144+
content = @Content(
145+
mediaType = "application/json",
146+
schema = @Schema(example = "{\"message\":\"\"}")
147+
)
148+
)
149+
})
150+
151+
public SuccessResponse<?> modifyNode(
152+
@PathVariable("graphId")
153+
String graphId,
154+
@PathVariable("nodeId")
155+
String nodeId,
156+
@RequestBody
157+
@Valid
158+
NodeModifyDto dto
159+
) {
160+
graphService.modifyNode(Long.parseLong(graphId), Long.parseLong(nodeId),dto);
161+
return SuccessResponse.empty();
162+
}
163+
141164
}

src/main/java/com/going/server/domain/graph/dto/NodeAddDto.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
@Getter
99
@Setter
10-
@Builder
1110
public class NodeAddDto {
1211
@NotNull(message = "추가할 부모 노드의 ID를 입력해주세요.")
1312
String parentId;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.going.server.domain.graph.dto;
2+
3+
import jakarta.validation.constraints.NotNull;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
7+
@Getter
8+
@Setter
9+
public class NodeModifyDto {
10+
@NotNull(message = "수정할 노드의 이름(label)을 입력해주세요.")
11+
private String label;
12+
@NotNull(message = "수정할 노드의 설명(includeSentence)을 입력해주세요.")
13+
private String includeSentence;
14+
}

src/main/java/com/going/server/domain/graph/service/GraphService.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.going.server.domain.graph.service;
22

3-
import com.going.server.domain.graph.dto.GraphListDto;
4-
import com.going.server.domain.graph.dto.KnowledgeGraphDto;
5-
import com.going.server.domain.graph.dto.NodeAddDto;
6-
import com.going.server.domain.graph.dto.NodeDto;
3+
import com.going.server.domain.graph.dto.*;
74

85
public interface GraphService {
96
GraphListDto getGraphList();
@@ -16,4 +13,6 @@ public interface GraphService {
1613
void addNode(Long graphId, NodeAddDto dto);
1714

1815
void deleteNode(Long graphId, Long nodeId);
16+
17+
void modifyNode(Long graphId, Long nodeId, NodeModifyDto dto);
1918
}

src/main/java/com/going/server/domain/graph/service/GraphServiceImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,24 @@ public void addNode(Long graphId, NodeAddDto nodeAddDto) {
139139

140140
@Override
141141
public void deleteNode(Long graphId, Long nodeId) {
142+
//그래프 검증
143+
graphRepository.getByGraph(graphId);
142144
//노드 찾기
143145
GraphNode node = graphNodeRepository.getByNode(nodeId);
144146
//노드 삭제
145147
graphNodeRepository.deleteById(node.getId());
146148
}
149+
150+
@Override
151+
public void modifyNode(Long graphId, Long nodeId, NodeModifyDto nodeModifyDto) {
152+
//그래프 검증
153+
graphRepository.getByGraph(graphId);
154+
//노드 찾기
155+
GraphNode node = graphNodeRepository.getByNode(nodeId);
156+
//변경사항 수정
157+
node.setLabel(nodeModifyDto.getLabel());
158+
node.setIncludeSentence(nodeModifyDto.getIncludeSentence());
159+
//저장
160+
graphNodeRepository.save(node);
161+
}
147162
}

0 commit comments

Comments
 (0)