Skip to content

친구 관계 관련 이슈 #2

@breadval

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

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