Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.going.server.domain.graph.dto.graphDto;
import com.going.server.domain.graph.dto.graphListDto;
import com.going.server.domain.graph.dto.knowledgeGraphDto;
import com.going.server.domain.graph.dto.nodeDetailDto;
import com.going.server.domain.graph.service.graphService;
import com.going.server.global.response.SuccessResponse;
import io.swagger.v3.oas.annotations.Operation;
Expand Down Expand Up @@ -54,4 +56,38 @@ public SuccessResponse<?> deleteGraph(@PathVariable("graphId") Long graphId) {
return SuccessResponse.empty();
}

@GetMapping("/{graphId}")
@Operation(summary = "지식 그래프 전체 데이터(전체 화면) 조회", description = "현재 저장된 전체 지식 그래프 데이터를 조회합니다.")
@ApiResponses({
@ApiResponse(
responseCode = "200",
description = "지식 그래프가 성공적으로 조회되었습니다.",
content = @Content(
mediaType = "application/json",
schema = @Schema(example = "{\"message\":\"\"}")
)
)
})
public SuccessResponse<knowledgeGraphDto> getGraph(@PathVariable("graphId") Long graphId) {
knowledgeGraphDto result = graphService.getGraph(graphId);
return SuccessResponse.of(result);
}

@GetMapping("/{graphId}/{nodeId}")
@Operation(summary = "지식 그래프 상세 조회 (노드 상세 조회)", description = "특정 노드의 상세 정보를 조회합니다.")
@ApiResponses({
@ApiResponse(
responseCode = "200",
description = "노드가 성공적으로 조회되었습니다.",
content = @Content(
mediaType = "application/json",
schema = @Schema(example = "{\"message\":\"\"}")
)
)
})
public SuccessResponse<nodeDetailDto> getNode(@PathVariable("graphId") Long graphId, @PathVariable("nodeId") Long nodeId) {
nodeDetailDto result = graphService.getNode(graphId,nodeId);
return SuccessResponse.of(result);
}

}
18 changes: 18 additions & 0 deletions src/main/java/com/going/server/domain/graph/dto/edgeDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.going.server.domain.graph.dto;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Builder
public class edgeDto {
private String source;
private String target;
private String label;

public static edgeDto from(String source, String target, String label) {
return edgeDto.builder().source(source).target(target).label(label).build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.going.server.domain.graph.dto;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Getter
@Setter
@Builder
public class knowledgeGraphDto {
private List<nodeDto> nodes;
private List<edgeDto> edges;
public static knowledgeGraphDto of(List<nodeDto> nodes, List<edgeDto> edges) {
return knowledgeGraphDto.builder().nodes(nodes).edges(edges).build();
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/going/server/domain/graph/dto/nodeDetailDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.going.server.domain.graph.dto;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Builder
public class nodeDetailDto {
private String id;
private String word;
private String sentence;
private String image_url;
private String audio_url;

public static nodeDetailDto from(String id, String word, String sentence, String image_url, String audio_url) {
return nodeDetailDto.builder().id(id).word(word).image_url(image_url).audio_url(audio_url).build();
}
}
21 changes: 21 additions & 0 deletions src/main/java/com/going/server/domain/graph/dto/nodeDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.going.server.domain.graph.dto;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.springframework.web.bind.annotation.GetMapping;

@Getter
@Setter
@Builder
public class nodeDto {
private String id;
private String label; //노트에 나올 아름
private Long level; //노드 깊이
private String image; //노드 이미지 주소
private String description; //노드 확대 시 나올 설명

public static nodeDto from(String id, String label, Long level, String image, String description) {
return nodeDto.builder().id(id).label(label).level(level).image(image).description(description).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@

import com.going.server.domain.graph.dto.graphDto;
import com.going.server.domain.graph.dto.graphListDto;
import com.going.server.domain.graph.dto.knowledgeGraphDto;
import com.going.server.domain.graph.dto.nodeDetailDto;

public interface graphService {
graphListDto getGraphList();
void deleteGraph(Long graphId);

knowledgeGraphDto getGraph(Long graphId);

nodeDetailDto getNode(Long graphId, Long nodeId);
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.going.server.domain.graph.service;

import com.going.server.domain.graph.dto.graphDto;
import com.going.server.domain.graph.dto.graphListDto;
import com.going.server.domain.graph.dto.*;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class graphServiceImpl implements graphService {

Expand All @@ -18,4 +20,24 @@ public void deleteGraph(Long graphId) {
//TODO : graphId로 그래프 찾기
//TODO : 그래프 삭제하는 코드 작성
}

@Override
public knowledgeGraphDto getGraph(Long graphId) {
//TODO : graphId로 그래프 찾기

//TODO : nodeDto에 값 매핑하는 코드 작성
List<nodeDto> nodeDto = new ArrayList<>();

//TODO : edgeDto에 값 매핑하는 코드 작성
List<edgeDto> edgeDto = new ArrayList<>();

return knowledgeGraphDto.of(nodeDto,edgeDto);
}

@Override
public nodeDetailDto getNode(Long graphId, Long nodeId) {
//TODO : graphId로 그래프 찾기
//TODO : nodeId로 노드 찾기
return nodeDetailDto.from(null,null,null,null,null);
}
}