나의 발자취

커뮤니티 신고 기능 구현 본문

프로젝트

커뮤니티 신고 기능 구현

달모드 2024. 11. 27. 11:15

변경 내역

일단 신고 테이블이 따로 존재는 하지만, 챌린지 신고의 경우 챌린지 테이블 안에서만 그 수가 계산이 되도록 해놨었다.

 

신고 당했을 때의 로직을 조금 더 구체화해서,

- User에 status 필드 추가: 신고당했을 때 유저의 상태를 크게 세가지 (A:Active, S:Suspended, D:Deactivated)로 나누기로 했다. (D는 유저가 탈퇴했을 때)

- 그럼 언제 바꾸나? 신고 유형이 크게 10가지가 있는데, 불법이나 음란물 등 바로 제재를 당해야 하는 것은 신고 누적이 1번만 되어도 바로 조치가 되도록 해야했고, 나머지는 3번 누적이 되어야 이용자 상태가 변경되도록 조치를 하기로 했다.

- 마지막으로 신고 당한 유저의 isShow(Post, Comment)의 상태를 false로 하도록 변경을 해야했다. 

 

유저의 신고 누적 회수에 따라 상태 변화 -> 시퀄라이저 Hook에 대한 개념이 등장한다.

User 테이블 model에 적용시켜주어야 하는 것으로,

Sequelize의 **훅(Hooks)**은 특정 모델에서 특정 이벤트가 발생할 때 실행되는 미리 정의된 함수이다.

나의 경우 테이블이 생성되고 나중에 훅으로 변경사항을 반영해야 하므로, Post hook이라고 할 수 있고, 훅의 종류는 여러 가지가 있다.

훅의 종류

 

Comments