From ff53fd490b02536733f6618908760b9e3d52eeb3 Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Mon, 29 Nov 2021 10:50:24 +0100 Subject: add group messages api --- chat_api/serializers.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'chat_api/serializers.py') 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): model = Group fields = '__all__' extra_fields = ('is_mine', ) + +class DmSerializer(serializers.ModelSerializer): + is_mine = serializers.SerializerMethodField('_is_mine') + + def _is_mine(self, obj): + request = self.context.get('request') + if request: + return request.user == obj.sender + return False + class Meta: + model = Dm + fields = '__all__' + +class GmSerializer(serializers.ModelSerializer): + is_mine = serializers.SerializerMethodField('_is_mine') + + def _is_mine(self, obj): + request = self.context.get('request') + if request: + return request.user == obj.sender + return False + class Meta: + model = Gm + fields = '__all__' + +class GroupMessagesSerializer(serializers.ModelSerializer): + messages = serializers.SerializerMethodField('_messages') + + def _messages(self, obj): + request = self.context.get('request') + if request: + gms = GmSerializer(obj.receiver_gm.all(), many=True, read_only=True, context={"request": request}) + return gms.data + return [] + + class Meta: + model=Group + fields=('messages', ) -- cgit v1.2.3