diff options
author | jdlugosz963 <jdlugosz963@gmail.com> | 2021-11-29 10:50:24 +0100 |
---|---|---|
committer | jdlugosz963 <jdlugosz963@gmail.com> | 2021-11-29 10:50:24 +0100 |
commit | ff53fd490b02536733f6618908760b9e3d52eeb3 (patch) | |
tree | ecbc500ec8854bb693f0aa4341961a2fea74ecc4 /chat_api/serializers.py | |
parent | b77b24cfae3ccafd4bbbd50c87107ebfd88bf282 (diff) | |
download | lom_api-ff53fd490b02536733f6618908760b9e3d52eeb3.tar.gz lom_api-ff53fd490b02536733f6618908760b9e3d52eeb3.zip |
add group messages api
Diffstat (limited to 'chat_api/serializers.py')
-rw-r--r-- | chat_api/serializers.py | 38 |
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 | |||
19 | class 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 | |||
31 | class 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 | |||
43 | class 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', ) | ||