@@ -35,28 +35,20 @@ class DirectChatList(ListAPIView):
3535 permission_classes = [IsAuthenticated ]
3636
3737 def get_queryset (self ):
38- user = self .request .user
39- return user .direct_chats .all ()
38+ return DirectChat .objects .prefetch_related ("users" ).filter (
39+ users = self .request .user
40+ )
4041
4142 def get (self , request , * args , ** kwargs ):
4243 chats = self .get_queryset ()
4344 serialized_chats = []
4445 for chat in chats :
45- # fixme: move to function like get_user() and get_opponent()
46- chat_id = chat .id
47- user1_id , user2_id = map (int , chat_id .split ("_" ))
48-
49- try :
50- user1 = User .objects .get (pk = user1_id )
51- user2 = User .objects .get (pk = user2_id )
52- except User .DoesNotExist :
53- # fixme: show deleted profile
54- continue
55-
56- if user1 == request .user :
57- opponent = user2
58- else : # fixme: if user1 == user2
59- opponent = user1
46+ user1_id , _ = map (int , chat .id .split ("_" ))
47+ # TODO сделать проверку на удаление профиля
48+ if user1_id == request .user .id :
49+ opponent = chat .users .all ()[1 ]
50+ else :
51+ opponent = chat .users .first ()
6052
6153 context = {"opponent" : opponent }
6254 serialized_chat = DirectChatListSerializer (chat , context = context ).data
@@ -180,7 +172,6 @@ class DirectChatFileList(ListCreateAPIView):
180172 permission_classes = [IsAuthenticated ]
181173
182174 def get_queryset (self ):
183-
184175 messages = self .request .user .direct_chats .get (id = self .kwargs ["id" ]).messages .all ()
185176
186177 return get_all_files (messages )
0 commit comments