phuochungus commited on
Commit
1db942a
1 Parent(s): f2b0da1

Fix friend request acceptance logic

Browse files
Files changed (1) hide show
  1. app/routers/friend_request.py +12 -8
app/routers/friend_request.py CHANGED
@@ -76,7 +76,7 @@ async def acceptRequest(RequestId: str, user=Depends(get_current_user)):
76
  raise HTTPException(status_code=400, detail="Friend request expired")
77
 
78
  if isRequestDone(fr):
79
- raise HTTPException(status_code=400, detail="Friend request already done")
80
 
81
  if isInviter(user, fr):
82
  if isInviteeEmpty(fr):
@@ -86,13 +86,17 @@ async def acceptRequest(RequestId: str, user=Depends(get_current_user)):
86
  fr_ref.update({"status": RequestStatus.COMPLETE.value})
87
  await makeFriend(fr["invitee"], fr["inviter"])
88
  return {"status": "OK"}
89
-
90
- if isInviteeEmpty(fr) and not isInviter(user, fr):
91
- fr_ref.update(
92
- {"invitee": user["sub"], "status": RequestStatus.WAITING_INVITER.value}
93
- )
94
- sendNotificationToInviter(fr["inviter"], user)
95
- return {"status": "OK"}
 
 
 
 
96
 
97
 
98
  def sendNotificationToInviter(inviterId: str, invitee):
 
76
  raise HTTPException(status_code=400, detail="Friend request expired")
77
 
78
  if isRequestDone(fr):
79
+ raise HTTPException(status_code=409, detail="Friend request already done")
80
 
81
  if isInviter(user, fr):
82
  if isInviteeEmpty(fr):
 
86
  fr_ref.update({"status": RequestStatus.COMPLETE.value})
87
  await makeFriend(fr["invitee"], fr["inviter"])
88
  return {"status": "OK"}
89
+ else:
90
+ if isInviteeEmpty(fr):
91
+ fr_ref.update(
92
+ {"invitee": user["sub"], "status": RequestStatus.WAITING_INVITER.value}
93
+ )
94
+ sendNotificationToInviter(fr["inviter"], user)
95
+ return {"status": "OK"}
96
+ else:
97
+ raise HTTPException(
98
+ status_code=status.HTTP_409_CONFLICT, detail="Invitee is not empty"
99
+ )
100
 
101
 
102
  def sendNotificationToInviter(inviterId: str, invitee):