2018007956 / Preddit

스터디에 최적화된 커뮤니티 플랫폼
0 stars 0 forks source link

feat: like or dislike vote #35

Closed 2018007956 closed 4 months ago

2018007956 commented 4 months ago

Overview

Change Log

  1. UI 생성 및 클릭 시 백엔드에 요청 보내는 함수 vote 구현 : client/src/pages/r/[sub]/[identifier]/[slug].tsx

    • 로그인 상태가 아니면 Redirect /login
    • 이미 클릭한 vote 버튼을 눌렀을 시에는 reset
    • 캐시를 사용하여 실시간으로 투표 정보를 반영해줄 수 있도록 mutate 사용
    • React icons의 화살표 아이콘 적용

      npm install react-icons --save

  2. DB에 투표 값 업데이트 해주는 vote API 생성 : server/src/routes/votes.ts

    • 현재 vote 값을 db에서 가져오기
    • [ 처음 클릭한 상황 / vote 했는데 한 번 더 눌러서 투표 제거한 상황 / 기존의 값과 다른 값으로 투표한 상황 ] 처리
    • 포스트와 댓글들의 votes 테이블을 돌면서 해당 유저의 투표 정보(1 or -1)가 있으면 userVote에 넣어줌 (setUserVote)

Result

Issue Tags