-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BE] 리뷰 재촉 기능(#744) #745
[BE] 리뷰 재촉 기능(#744) #745
Conversation
Test Results 63 files 63 suites 8s ⏱️ Results for commit affd9b9. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코드 짠다고 수고했어요~
배열로 받고, 하나씩 필터하는것도 괜찮은거 같네용
( 나중에 피드백 ID도 넣는다고 가정할 때 피드백 ID 와 방 ID가 같을때 식별을 못할 수도 있겠다?
는 생각 했는데 배열이면 괜찮을듯요 )
질문남긴거만 반영하면 될 거 같슴당
@@ -36,4 +37,14 @@ public UserAlarmsByActionType findAllByReceiver(Member member) { | |||
Collectors.toList() | |||
))); | |||
} | |||
|
|||
public boolean existUnReadUrgeAlarm(long revieweeId, long reviewerId, long roomId) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
stream.anyMatch
로 바꿔도 괜찮을듯용
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
인덴트가 2였는데 간단하게 줄일 수 있었네요! 바로 반영했어요 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트도 꼼꼼하고, 수고하셨습니다!~ 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안뇽하세요 무빈!!
어려운 기능이었을 것 같은데 기존 기능과 잘 융합해서 작성하신 것 같습니다 👍👍
매칭 기능하고 나니까 애들 장난 같죠? (아닐 듯 ㅋㅋ)
코드도 잘 작성된 것 같고, 테스트도 꼼꼼해서 좋습니당.
필터 부분도 문제 없을 것 같아요.
정책적으로 궁금한 부분이 있어 코멘트 남겨놓았어용.
이 부분만 확인해주심 댈 것 같슴당! 👍
고생하셨어요~~
} | ||
|
||
@Test | ||
@DisplayName("안 읽은 재촉 알람이 존재할 때 알람을 생성하지 않는다.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트 꼼꼼하고 좋네요! 👍
그런데 보면서 생각한 건데,
안 읽은 재촉 알람이 존재할 때 예외가 발생하는 게 아니라 그냥 단순히 생성을 패스하는 것 같은데요.
그럼 이 경우는 클라이언트 단에서 어떻게 보이게 되는 건가요? ㅇ0ㅇ
이미 보낸 재촉 알람이 존재하고, 상대가 아직 읽지 않았다는 사실을 재촉 알람을 생성하는 유저가 인식할 수 있는 방법이 있나요?
지금은 단순히 boolean 값을 체크하고, false일 때는 아무 행동도 하지 않는 것 같아서요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
지금은 그냥 알람 생성에 실패하고, 프론트단에서 재요청 주기를 주는 식으로 구현하려고 생각했었습니다.
근데, 애초에 알람을 생성하고 저장하는 로직밖에 없어 여기서 예외를 발생했을때에 다른 로직에 문제가 되지도 않고, 프론트에서 예외를 캐치해서 이미 알림이 존재한다는 식의 메시지를 전달할 수 도 있겠네요.
예외 발생으로 바꿔볼께요~
* feat: 리뷰 재촉 알람 구 * test: 재촉 알람 테스트 구현 * test: 알람 서비스 테스트 정적 임포트로 수정 * feat: 리뷰 재촉 기능 구현 * test: 리뷰 재촉 기능 테스트 구현 * style: 개행 추가 * refactor: stream 사용으로 인덴트 감소하도록 수정 * refactor: 이미 존재하는 재촉 알람 생성 요청 시 예외 발생하도록 수정 * test: 실패 테스트 수정 --------- Co-authored-by: hjk0761 <[email protected]>
📌 관련 이슈
✨ PR 세부 내용
리뷰 재촉 기능을 구현했습니다.
리뷰 재촉은 '리뷰이'가 '아직 리뷰를 하지 않은 리뷰어' 에게 사용하는 기능입니다.
구현한 점은 크게 두 가지 입니다.
리뷰 재촉 알람은 기존의 알람 형태를 그대로 가져갔으며, 재촉 알람을 위한 타입인
AlarmActionType.REVIEW_URGE
을 새로 만들었습니다.기본적으로 재촉 알람은 상대방이 리뷰를 하지 않은 상태에서만 가능합니다.
재촉 알람과 관련한 정책을 생각하면서, 불필요하게 많은 재촉 알람을 막아야 한다고 생각했습니다.
그래서 추가적으로 상대방이 안읽은 재촉 알람이 이미 있는 경우 알람을 새로 생성하지 않도록 하였습니다.
리뷰 재촉 기능은 알람을 생성하지만 ReviewController 에 두었습니다.
리뷰와 관련된 기능이라고 생각했고, 재촉 알람을 생성하기 위해 방 상태, 리뷰 완료 상태를 확인해야 하기 때문에 그렇게 두었습니다.
P4
UserAlarmsByActionType` 에서 주석 처리된 부분이 하나 있습니다.
리뷰 완료 상태인 알람만 가져오도록 필터링한 부분이어서 getRooms 가 쓰이고 있는 getAlarm 이 사용자가 받은 알람 모두를 가져오는 부분이라 주석 처리 했습니다.
알람 타입으로 구분하려면 추후 메서드를 분리하는게 맞겠다는 판단에서 주석한건데, 이에 대해 괜찮다고 생각하시는지 궁금해요.