Skip to content
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

✨ 팔로우 기능 api 추가 #405

Closed
3 tasks done
niamu01 opened this issue Dec 13, 2023 · 1 comment
Closed
3 tasks done

✨ 팔로우 기능 api 추가 #405

niamu01 opened this issue Dec 13, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@niamu01
Copy link
Contributor

niamu01 commented Dec 13, 2023

구현 기능

  • 자신 유저의 팔로우/언팔로우 기능
  • 특정 유저의 팔로우/팔로잉 목록, 각 인원 수, 자신 유저의 팔로우 여부

예시

mutation {
  followUser(target: "sungwook") {
    __typename
    ... on FollowSuccess {
      message
      userId
      followId
    }
    ... on FollowFail {
      message
    }
  }
  
  unfollowUser(target: "sungwook") {
    __typename
    ... on FollowSuccess {
      message
      userId
      followId
    }
    ... on FollowFail {
      message
    }
  }
}
query {
  # getFollowerList("yopark") -> yopark를 팔로우 하는 사람들
  getFollowerList(target: "yopark") {
    count
    followList {
      user {
        id
        login
        imgUrl
      }
      isFollowing
    }
  }

  # getFollowingList("yopark") -> yopark(target)이 팔로우 하는 사람들
  getFollowingList(target: "yopark") {
    count
    followList {
      isFollowing
      user {
        id
        login
        imgUrl
      }
    }
  }
  
}
  • 테스트를 위한 임시 함수도 하나 만들었습니다.
// yeju -> jaham 팔로우
// type: "follow" | "unfollow"
mutation {
MakeFollow(to: "jaham", from:"yeju", type:"follow") {
  __typename
    ... on FollowSuccess {
      message
      userId
      followId
    }
    ... on FollowFail {
      message
    }
}

subscription

subscription {
  followUpdated {
    __typename
    ... on FollowSuccess {
      message
      userId
      followId
    }
    ... on FollowFail {
      message
    }
  }
}
@niamu01 niamu01 added this to 42Stat Dec 13, 2023
@niamu01 niamu01 converted this from a draft issue Dec 13, 2023
@niamu01 niamu01 added the enhancement New feature or request label Dec 13, 2023
@niamu01 niamu01 self-assigned this Dec 13, 2023
@niamu01 niamu01 moved this from 📋 Backlog to 🔖 Ready in 42Stat Dec 13, 2023
@niamu01 niamu01 moved this from 🔖 Ready to 🏗 In progress in 42Stat Dec 13, 2023
niamu01 added a commit that referenced this issue Dec 14, 2023
niamu01 added a commit that referenced this issue Dec 14, 2023
niamu01 added a commit that referenced this issue Dec 14, 2023
login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리

- #405
niamu01 added a commit that referenced this issue Dec 14, 2023
login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리

- #405
niamu01 added a commit that referenced this issue Dec 14, 2023
login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리

- #405
@niamu01
Copy link
Contributor Author

niamu01 commented Dec 14, 2023

테스트용으로 팔로우 db 모두 지우는 함수도 하나 있으면 편할까요?
요청하시면 쇽샥 만들어오겠습니다.

niamu01 added a commit that referenced this issue Dec 16, 2023
@niamu01 niamu01 changed the title 팔로우 기능 api 추가 ✨ 팔로우 기능 api 추가 Dec 19, 2023
niamu01 added a commit that referenced this issue Dec 27, 2023
niamu01 added a commit that referenced this issue Dec 27, 2023
niamu01 added a commit that referenced this issue Dec 27, 2023
- #405

refactor: ♻️ 변수명 수정 및 함수 분리

login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리

- #405

refactor: ♻️ checkFollowingStatus 함수 활용하도록 변경

- #405
niamu01 added a commit that referenced this issue Dec 27, 2023
niamu01 added a commit that referenced this issue Feb 20, 2024
- #405

feat: ✨ MakeFollow: 프론트 테스트용 임시 함수 추가

- #405

refactor: ♻️ 변수명 수정 및 함수 분리

login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리

- #405

refactor: ♻️ checkFollowingStatus 함수 활용하도록 변경

- #405
niamu01 added a commit that referenced this issue Feb 20, 2024
- #405

refactor: ♻️ 프론트 테스트용 임시 함수 리팩토링

- #405

refactor: ♻️ type-only import 추가

- #405

fix: 🐛 mutation이 아닌 쿼리에 대해서 mutation -> query 변경

- #405
niamu01 added a commit that referenced this issue Feb 20, 2024
niamu01 added a commit that referenced this issue Feb 20, 2024
niamu01 added a commit that referenced this issue Feb 20, 2024
- #405

feat: ✨ MakeFollow: 프론트 테스트용 임시 함수 추가

- #405

refactor: ♻️ 변수명 수정 및 함수 분리

login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리

- #405

refactor: ♻️ checkFollowingStatus 함수 활용하도록 변경

- #405
niamu01 added a commit that referenced this issue Feb 20, 2024
- #405

refactor: ♻️ 프론트 테스트용 임시 함수 리팩토링

- #405

refactor: ♻️ type-only import 추가

- #405

fix: 🐛 mutation이 아닌 쿼리에 대해서 mutation -> query 변경

- #405
niamu01 added a commit that referenced this issue Feb 20, 2024
@niamu01 niamu01 closed this as completed Feb 20, 2024
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in 42Stat Feb 20, 2024
niamu01 added a commit that referenced this issue Apr 10, 2024
niamu01 added a commit that referenced this issue Apr 10, 2024
feat: ✨ MakeFollow: 프론트 테스트용 임시 함수 추가
refactor: ♻️ 변수명 수정 및 함수 분리
login -> target, FollowListByMe -> FollowList, FollowUserList -> FollowListWithCount, followUser->followLser, cursusUserService에 유저 아이디 찾는 함수 추가, 중복되는 함수 분리
refactor: ♻️ checkFollowingStatus 함수 활용하도록 변경
refactor: ♻️ 리스트에 자신이 있는 경우 isFollowing을 null로 반환

- #405
niamu01 added a commit that referenced this issue Apr 10, 2024
- #405

refactor: ♻️ 프론트 테스트용 임시 함수 리팩토링

- #405

refactor: ♻️ type-only import 추가

- #405

fix: 🐛 mutation이 아닌 쿼리에 대해서 mutation -> query 변경

- #405
niamu01 added a commit that referenced this issue Apr 10, 2024
db에 요청: userId, followId 로 follower/following 리스트를 만든 후, userPreview와 followAt 을 추가해 cache와 같은 타입으로 변환 / cache에 요청, db요청 이후: {userPreview, followAt}[] 에 로그인 한 유저에 맞춰 isFollowing 추가 후 반환
fix: 🐛 존재하는 유저인지 검사 후 db에 write
fix: 🐛 실수 수정 following->follower
프론트와 디버깅 중 발견했습니다
feat: ✨ preload 임시 적용
이후 중복되는 코드를 정리해야합니다
refactor: ♻️ 주석 삭제 및 중복되는 함수 분리
fix: 🐛 팔로우 리스트 캐시 업데이트시 배열의 push를 사용하여 무조건 뒤에 붙던 일 임시 해결
sort를 밖에서 하는 방식으로 변경할 예정입니다
feat: 🐛 isFollowing 도 cache에서 확인하도록 변경
feat: 🐛 cache된 리스트를 반환할 때도 sort한 후 반환하도록 추가
refactor: ♻️ follow시 push하기 때문에 set을 다시 호출하던 부분 삭제, 못 찾는 경우와 삭제 실패가 같은 404를 throw하여 find하지 않고 바로 delete하여 로직 줄이기
refactor: ♻️ 타입, 변수명 변경
FollowList[] -> Follow[], cache되던 형태의 FollowListCacheType를 Follow로 변경하고 원래 Follow였던 최종 반환 형태를 MyFollow로 변경, 이에 따른 dto파일명이나 pagination 타입도 함께 맞추어 변경
refactor: ♻️ 사용하는 db 변경 temp_follows -> follows
fix: 🔥 콘솔로그 삭제

- close #405
- #413
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

No branches or pull requests

1 participant