Skip to content

친구 관계 관련 이슈 #2

Description

@breadval

친구 관계를 following/follower로 가져갈 것인지, 아니면 다른 컬랙션으로 관리할 것인지에대한 이슈다.

개인적으로는 following/follower관계로 가져가는 것이 편한데, 문제는 맞팔을 검색할 수가 없다.

결국 following리스트를 볼때는 화면 단위로, 해당 사용자가 follower인지 bulk로 검색하여 맞팔을 보여주고, follower리스트를 볼 때는 화면단위로 following하고 있는지 체크해야 한다.

친구 관계를 following/follower로 가져갈 경우

구현하기 쉬우나, 맞팔인지 체크하기 위해 follower를 검색해야 함.
usergrid 기본 기능을 사용하므로, Activity 또는 Feed를 이용할 수 있음.

서로 following하기

  • A가 B에게 following함: POST A/following/B
  • B가 follower리스트에서 A를 following함: POST B/following/A

A의 following리스트 조회

  • GET A/following?limit=10
  • GET A/follower?uuid1 or uuid2 or uuid3.... or uuid10

친구관계를 요청/수락으로 관리할 경우(컬랙션이용)

동기화가 깨질 수 있음. 친구 요청/수락시 여러 과정이 있으므로, 중간에 하나라도 실패될 경우 문제가 발생할 수 있음.

A가 B에게 친구 요청

  • A가 자신의 친구 목록에 B가 있는지 확인: GET A/friend/B
  • B가 요청받은 목록에 A를 넣어줌: POST B/requested {A}
  • A가 요청한 목록에 B를 넣어줌: POST A/request {B}
  • B가 자신에게 들어온 요청을 조회: GET B/requested
  • A가 자신이한 요청을 조회: GET A/request

B가 자신에게 온 요청을 수락

  • A의 친구 목록에 자신을 등록: POST A/friend {B}
  • 자신(B)의 친구 목록에 A를 등록: POST B/friend {A}
  • A가 요청한 목록에서 B를 삭제: DELETE A/request/B
  • B가 자신에게 들어온 A의 요청을 삭제: DELETE B/requested/A

B가 자신에게 온 요청을 거절

  • A의 거절 목록에 요청을 추가: POST A/refused {B}
  • B의 요청을 삭제: DELETE B/requested/A
  • A의 요청을 삭제: DELETE A/request/B

친구 목록 조회

  • A가 자신의 친구 리스트를 조회: GET A/friend
  • B가 자신의 친구 리스트를 조회: GET B/friend

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions