나의 발자취
커뮤니티 신고 기능 구현 본문
변경 내역
일단 신고 테이블이 따로 존재는 하지만, 챌린지 신고의 경우 챌린지 테이블 안에서만 그 수가 계산이 되도록 해놨었다.
신고 당했을 때의 로직을 조금 더 구체화해서,
- User에 status 필드 추가: 신고당했을 때 유저의 상태를 크게 세가지 (A:Active, S:Suspended, D:Deactivated)로 나누기로 했다. (D는 유저가 탈퇴했을 때)
- 그럼 언제 바꾸나? 신고 유형이 크게 10가지가 있는데, 불법이나 음란물 등 바로 제재를 당해야 하는 것은 신고 누적이 1번만 되어도 바로 조치가 되도록 해야했고, 나머지는 3번 누적이 되어야 이용자 상태가 변경되도록 조치를 하기로 했다.
- 마지막으로 신고 당한 유저의 isShow(Post, Comment)의 상태를 false로 하도록 변경을 해야했다.
유저의 신고 누적 회수에 따라 상태 변화 -> 시퀄라이저 Hook에 대한 개념이 등장한다.
User 테이블 model에 적용시켜주어야 하는 것으로,
Sequelize의 **훅(Hooks)**은 특정 모델에서 특정 이벤트가 발생할 때 실행되는 미리 정의된 함수이다.
나의 경우 테이블이 생성되고 나중에 훅으로 변경사항을 반영해야 하므로, Post hook이라고 할 수 있고, 훅의 종류는 여러 가지가 있다.
'프로젝트' 카테고리의 다른 글
Instagram, Facebook 같은 앱에서도 사용하는 일반적인 패턴인 페이지네이션이란? (0) | 2024.12.10 |
---|---|
(고생) VARCHAR(1), CHAR(1) 차이를 모르면... (0) | 2024.11.27 |
이미지 파일 업로드 기능 구현 (feat. BLOB, BYTEA), 이틀간 작업 내역 (1) | 2024.11.20 |
앱 제작 과정 (6) DB setup 완료, seed data 넣기 완료 (0) | 2024.11.20 |
앱 제작 과정 (6) DB 설계 및 초기 프론트 세팅 (DB 수정 반영 후 백엔드 개발 들어가기, Custom Style 적용) (0) | 2024.11.18 |
Comments