@@ -36,6 +36,31 @@ def get_queryset(self):
3636 user = self .request .user
3737 return user .direct_chats .all ()
3838
39+ def get (self , request , * args , ** kwargs ):
40+ chats = self .get_queryset ()
41+ serialized_chats = []
42+ for chat in chats :
43+ # fixme: move to function like get_user() and get_opponent()
44+ chat_id = chat .id
45+ user1_id , user2_id = map (int , chat_id .split ("_" ))
46+
47+ try :
48+ user1 = User .objects .get (pk = user1_id )
49+ user2 = User .objects .get (pk = user2_id )
50+ except User .DoesNotExist :
51+ # fixme: show deleted profile
52+ continue
53+
54+ if user1 == request .user :
55+ opponent = user2
56+ else : # fixme: if user1 == user2
57+ opponent = user1
58+
59+ context = {"opponent" : opponent }
60+ serialized_chat = DirectChatListSerializer (chat , context = context ).data
61+ serialized_chats .append (serialized_chat )
62+ return Response (serialized_chats , status = status .HTTP_200_OK )
63+
3964
4065class ProjectChatList (ListAPIView ):
4166 serializer_class = ProjectChatListSerializer
@@ -72,8 +97,6 @@ def get(self, request, *args, **kwargs) -> Response:
7297
7398 if user1 == request .user :
7499 opponent = user2
75- # may be is better to use serializer or return dict -
76- # {"first_name": user2.first_name, "last_name": user2.last_name}
77100 else :
78101 opponent = user1
79102 context = {"opponent" : opponent }
0 commit comments