친구 모델
FriendRequest
친구 신청을 보낼 때 생기는 객체
state : 요청 상태를 표시
•
Pending: 요청 중
•
Accepted: 수락
•
Declined: 거절
from_user : 친구 신청을 보낸 유저
to_user : 친구 신청을 받은 유저
created_at : 생성일시
Friend
친구 신청이 수락 되면 생성되는 객체, 친구 관계는 양방향이므로 하나의 친구 관계마다 두 개의 친구 객체가 생성됨
user
friend
created_at : 생성일시
ex) Friend(user=a, friend=b), Friend(user=b, friend=a) 가 동시에 생성됨
기능
추가(Send)
{
"action": "send",
"friend_id": 1
}
JSON
복사
action : send
friend_id : 요청을 보내고 싶은 유저의 id
요청이 정상적으로 처리되면 state가 pending인 FriendRequest 객체가 생성된다.
수락(Accept)
{
"action": "accept",
"friend_id": 2
}
JSON
복사
action : accept
friend_id : 수락할 친구 신청을 보낸 유저의 id
요청이 정상적으로 처리되면 FriendRequest의 state가 accepted로 바뀌고 Friend 객체가 두 개 생성된다.
거절(Decline)
{
"action": "decline",
"friend_id": 2
}
JSON
복사
action : decline
friend_id : 거절할 친구 신청을 보낸 유저의 id
요청이 정상적으로 처리되면 FriendRequest의 state 가 declined로 바뀐다. Friend 객체는 생성되지 않는다.
수정할 부분
•
요청이 거절된 상태에서 해당 request를 지울 것인가 아니면 declined상태이면 다시 요청을 보낼 수 있게 바꿀 것인가
•
(삭제 구현할 때) 친구가 삭제되면 request 객체도 지워져야 다시 추가할 수 있을 듯
•
시리얼라이저 추가