내가 담당하는 기능/역할
- **대댓글**
- **`200`** AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 댓글/대댓글 작성 가능하게 하기
- 댓글 리스트 response할 때 대댓글 리스트도 모두 포함해서 보여주기
- **`Exception`** AccessToken이 없거나, 유효하지 않은 Token일 때 ‘로그인이 필요합니다.’를 200 정상 응답으로 나타내기
- **API 종류**
1. 대댓글 목록 조회 API
- AccessToken이 없어도 댓글 목록 조회가 가능하도록 하기
- 조회하는 게시글에 작성된 모든 댓글을 response에 포함하기
2. 대댓글 작성 API
- AccessToken이 있고, 유효한 Token일 때만 댓글 작성이 가능하도록 하기
3. 대댓글 수정 API
- AccessToken이 있고, 유효한 Token이면서 해당 사용자가 작성한 댓글만 수정 가능하도록 하기
4. 대댓글 삭제 API
- AccessToken이 있고, 유효한 Token이면서 해당 사용자가 작성한 댓글만 삭제 가능하도록 하기
대댓글
@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
@DynamicInsert
@Entity
public class Recomment extends Timestamped{
// 기본키
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 외래키
@JoinColumn(name = "member_id", nullable = false)
@ManyToOne(fetch = FetchType.LAZY)
private Member member;
// 외래키
// 디폴트로 pk값을 가져온다.
@JoinColumn(name = "post_id", nullable = false)
// fetch = FetchType.LAZY 지연참조
// 다른내용을 항상 참조할 필요는 없다.
@ManyToOne(fetch = FetchType.LAZY)
private Post post;
@JoinColumn(name = "comment_id", nullable = false)
@ManyToOne(fetch = FetchType.LAZY)
private Comment comment;
@Column(nullable = false)
private String content;
@Column(name = "likes_count")
@ColumnDefault("0") //default 0
private Integer likes_count;
public void updatelike_count(Integer postlike_count){
this.likes_count = postlike_count;
}
public void update(RecommentRequestDto recommentRequestDto) {
this.content = recommentRequestDto.getContent();
}
public boolean validateMember(Member member) {
return !this.member.equals(member);
}
}