배 지원 closed issue #15: alarm at 배 지원 / finalproject-baejiwon

배 지원
2023-01-12T07:13:36Z

Comment(댓글 작성)

DB ERD

1. API 명세서

종류 | Url
기본 | /api/v1
포스트 | -

2. 알람

(1) 알람 리스트 조회

api => GET /alarms

알람 조회는 모든 회원이 권한을 가집니다.

특정 User의 알람 목록을 받아옵니다.

특정 포스트에 새 댓글이 달리고, 좋아요가 눌리면 알람이 등록됩니다.

알람 목록은 Pagination으로 받아옵니다. (Pageable 사용)

한 페이지당 default 피드 갯수는 20개

총 페이지 갯수가 표시

작성날짜 기준으로 최신순으로 sort

리턴 (JSON 형식)

예외처리

로그인 하지 않은 경우

Response

{
"resultCode":"SUCCESS",
"result": {
"content":
[
{
"id": 1,
"alarmType": "NEW_LIKE_ON_POST",
"fromUserId": 1,
"targetId": 1,
"text": "new like!",
"createdAt": "2022-12-25T14:53:28.209+00:00",
}
]
}
}

id : 알람 ID

alarmType :알람 타입 (NEW_COMMENT_ON_POST, NEW_LIKE_ON_POST)

fromUserId: fromUserId(알림을 발생시킨 user id)

targetId : targetId(알림이 발생된 post id)

text : alarmType 따라 string 필드에 담아 줄 수 있도록 필드를 선언합니다.

NEW_COMMENT_ON_POST 일 때는 alarmText → new comment!

NEW_LIKE_ON_POST 일 때는 alarmText → "new like!"

createdAt : 등록일시

(2) 포스트가 삭제되었을때 처리

Post와 Comment, Like가 관계를 맺고 있어서 댓글이 나 Like가 있는 글을 지울 때 문제가 생길 수 있습니다.

처리 방법은 Soft Delete방법과 orphanremoval = true 두가지가 있습니다.

Soft Delete방법 추천

Foreign key빼는 것

Post는 delete쿼리를 날리지 않고 deleted_at이라는 컬럼에 now로 설정

조회 할 때 deleted_at컬럼이 null인 것만 가져오게 설정