
다음과 같이 댓글을 조회하는 API이다.
불러오는 값은 다음 DTO리스트이다.
1. 멤버 프로필 이미지
2. 멤버 닉네임
3. 작성 날짜
4. 댓글 내용
/**
* 힐링 메시지에 댓글 조회 API
* @param request 사용자 요청
* @param messageId 댓글을 조회하고자 하는 힐링 메시지 고유번호
* @return CommentResponse DTO
* @see CommentResponse 댓글 등록 후 반환 DTO
*/
@Operation(summary = " 힐링 메시지에 댓글 조회 API")
@GetMapping("/comment/{messageId}")
public ResponseEntity<List<CommentResponse>> getComment(HttpServletRequest request,
@PathVariable("messageId") Long messageId){
/* 댓글 조회 */
return ResponseEntity.ok(healingMessageService.getComment(request,messageId));
}
받는 매개변수는 request와 messsageid밖에 없다.
해당 게시글에 있는 모든 댓글들을 가져오므로,
해당 게시글의 고유번호만 가져오면 충분하다.
/**
* 힐링 메시지에 댓글 조회 메서드
* @param request 사용자 요청
* @param messageId 댓글을 조회하고자 하는 힐링 메시지 고유 번호
* @return CommentResponse DTO
* @see CommentResponse 댓글 등록 후 반환 DTO
*/
List<CommentResponse> getComment(HttpServletRequest request, Long messageId);
/**
* 힐링 메시지에서 댓글 조회 API
* @param request 사용자 요청
* @param messageId 댓글을 조회하고자 하는 힐링 메시지 고유 번호
* @return CommentResponse DTO
* @see CommentResponse
*/
@Override
public List<CommentResponse> getComment(HttpServletRequest request, Long messageId) {
List<CommentResponse> commentResponsesList = healingMessageMapper.getComment(messageId);
return commentResponsesList;
}
/**
* 힐링 메시지에서 댓글 조회
* @param messageId 댓글을 조회하고자 하는 힐링 메시지 고유 번호
* @return CommentResponse DTO
* @see CommentResponse
*/
List<CommentResponse> getComment(Long messageId);
<!-- 힐링 메시지에 댓글 조회 -->
<select id="getComment" resultType="website.server.Domain.HealingProgram.HealingService.HealingMessageSharing.DTO.Response.CommentResponse">
SELECT
hmc.commentId,
m.profile_image_path AS profileImagePath,
m.nickname,
hmc.content,
hmc.createdDate
FROM
healing_message_comment hmc
JOIN
member m ON hmc.userNumber = m.userNumber
WHERE
hmc.messageId = #{messageId}
ORDER BY
hmc.createdDate ASC
두개의 테이블을 userNumber로 조인한다.
댓글 테이블과 멤버 테이블을 조인한다.
그리고 최종적으로 오름차순으로 조회하는 SQL문으로 마무리 한다.
