모든 API에서 알림을 보내주는 로직을 포함한 코드들을 알림 API로 따로 분리해 가독성을 높이고, 유지보수하기 편하도록 하기위해서 리팩터링하고자 한다.
구현기능
[x] 전체 공지게시판과 동아리별 공지 게시판 API의 알림 기능 분리
[x] 게시판 댓글, 대댓글 API의 알림 기능 분리
[x] 게시글, 댓글, 답글 좋아요 API의 알림 기능 분리
[x] 동아리 가입 신청 승인과 거절 API의 알림 기능 분리
[x] 동아리 탈퇴 API의 알림 기능 분리
[x] 동아리별 일정 생성과 수정 API의 알림 기능 분리
[x] 알림 API 에러 핸들링
❗️참고
기존 알림 생성에 대한 로직은 위에 해당하는 API 요청 시 백엔드에서 자동적으로 알림을 생성하도록 로직이 구현되어 있었다. 하지만 기능 분리와 유지보수를 위해 알림 API를 따로 분리해 주었고, 따라서 위에 해당하는 API 요청 후 추가적으로 알림 생성에 대한 API 요청을 한번 더 보내주도록 해야 한다.
📖 notiCategoryNum
0: 댓글
1: 답글
2: 동아리 가입 승인
3: 동아리 가입 거절
4: 일정 생성
5: 일정 수정
6: 동아리 공지 생성
7: 동아리 가입 신청
8: 동아리 탈퇴
9: 게시글 좋아요
10: 댓글 좋아요
11: 답글 좋아요
12: 전체 공지 생성
목적
구현기능
❗️참고
기존 알림 생성에 대한 로직은 위에 해당하는 API 요청 시 백엔드에서 자동적으로 알림을 생성하도록 로직이 구현되어 있었다. 하지만 기능 분리와 유지보수를 위해 알림 API를 따로 분리해 주었고, 따라서 위에 해당하는 API 요청 후 추가적으로 알림 생성에 대한 API 요청을 한번 더 보내주도록 해야 한다.
📖 notiCategoryNum
0: 댓글 1: 답글 2: 동아리 가입 승인 3: 동아리 가입 거절 4: 일정 생성 5: 일정 수정 6: 동아리 공지 생성 7: 동아리 가입 신청 8: 동아리 탈퇴 9: 게시글 좋아요 10: 댓글 좋아요 11: 답글 좋아요 12: 전체 공지 생성
💡 API 명세서
URL : /api/notification/comment/:category/:boardNum
ex) /api/notification/comment/notice/31
(여기서 boardNum은 댓글 생성 API 요청에 대한 응답 데이터와 같음.) Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/reply-comment/:category/:boardNum/:cmtNum
ex) /api/notification/reply-comment/notice/30/1565
(여기서 boardNum과 cmtNum은 답글 생성 API 요청에 대한 응답 데이터와 같음.) Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/join-club/result/:clubNum
ex) /api/notification/join-club/result/2
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/schedule/:clubNum
ex) /api/notification/schedule/2
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/board/notice/:boardNum
ex) /api/notification/board/notice/35
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/board/club-notice/:clubNum/:boardNum
ex) /api/notification/board/club-notice/2/35
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/join-club/:clubNum
ex) /api/notification/join-club/2
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/resign-club/:clubNum
ex) /api/notification/resign-club/2
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/like/board/:category/:boardNum
ex) /api/notification/like/board/notice/30
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/like/comment/:category/:cmtNum
ex) /api/notification/like/comment/notice/1565
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8
URL : /api/notification/like/reply-comment/:category/:replyCmtNum
ex) /api/notification/like/reply-comment/notice/1565
Method : POST
Headers : "Content-type" : "application/json; charset=utf-8"
Status
Content-type : application/json; charset=utf-8