summaryrefslogtreecommitdiffstats
path: root/chat_api/serializers.py
diff options
context:
space:
mode:
Diffstat (limited to 'chat_api/serializers.py')
-rw-r--r--chat_api/serializers.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/chat_api/serializers.py b/chat_api/serializers.py
index 585bb36..15828be 100644
--- a/chat_api/serializers.py
+++ b/chat_api/serializers.py
@@ -15,3 +15,41 @@ class GroupSerializer(serializers.ModelSerializer):
15 model = Group 15 model = Group
16 fields = '__all__' 16 fields = '__all__'
17 extra_fields = ('is_mine', ) 17 extra_fields = ('is_mine', )
18
19class DmSerializer(serializers.ModelSerializer):
20 is_mine = serializers.SerializerMethodField('_is_mine')
21
22 def _is_mine(self, obj):
23 request = self.context.get('request')
24 if request:
25 return request.user == obj.sender
26 return False
27 class Meta:
28 model = Dm
29 fields = '__all__'
30
31class GmSerializer(serializers.ModelSerializer):
32 is_mine = serializers.SerializerMethodField('_is_mine')
33
34 def _is_mine(self, obj):
35 request = self.context.get('request')
36 if request:
37 return request.user == obj.sender
38 return False
39 class Meta:
40 model = Gm
41 fields = '__all__'
42
43class GroupMessagesSerializer(serializers.ModelSerializer):
44 messages = serializers.SerializerMethodField('_messages')
45
46 def _messages(self, obj):
47 request = self.context.get('request')
48 if request:
49 gms = GmSerializer(obj.receiver_gm.all(), many=True, read_only=True, context={"request": request})
50 return gms.data
51 return []
52
53 class Meta:
54 model=Group
55 fields=('messages', )