summaryrefslogtreecommitdiffstats
path: root/chat_api/views.py
diff options
context:
space:
mode:
authorjdlugosz963 <jdlugosz963@gmail.com>2021-11-29 10:50:24 +0100
committerjdlugosz963 <jdlugosz963@gmail.com>2021-11-29 10:50:24 +0100
commitff53fd490b02536733f6618908760b9e3d52eeb3 (patch)
treeecbc500ec8854bb693f0aa4341961a2fea74ecc4 /chat_api/views.py
parentb77b24cfae3ccafd4bbbd50c87107ebfd88bf282 (diff)
downloadlom_api-ff53fd490b02536733f6618908760b9e3d52eeb3.tar.gz
lom_api-ff53fd490b02536733f6618908760b9e3d52eeb3.zip
add group messages api
Diffstat (limited to 'chat_api/views.py')
-rw-r--r--chat_api/views.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/chat_api/views.py b/chat_api/views.py
index eca6d45..6d161c1 100644
--- a/chat_api/views.py
+++ b/chat_api/views.py
@@ -1,7 +1,6 @@
1from django.db.models.query import QuerySet 1from django.db.models.query import QuerySet
2from django.http.response import Http404 2from django.http.response import Http404
3from rest_framework.response import Response 3from rest_framework.response import Response
4from rest_framework.serializers import Serializer
5from rest_framework.views import APIView 4from rest_framework.views import APIView
6from rest_framework import permissions 5from rest_framework import permissions
7from rest_framework import generics 6from rest_framework import generics
@@ -77,3 +76,40 @@ class GroupDetailView(generics.RetrieveUpdateDestroyAPIView):
77 76
78 serializer = GroupSerializer(group, context={"request": self.request}) 77 serializer = GroupSerializer(group, context={"request": self.request})
79 return Response(serializer.data) 78 return Response(serializer.data)
79
80class GmsView(APIView):
81 permission_classes = (permissions.IsAuthenticated, )
82 authentication_classes = (TokenAuthentication, )
83
84 def get(self, request, pk):
85 try:
86 group = Group.objects.filter(
87 Q(owner=request.user) |
88 Q(users__in=(request.user.pk, ))
89 ).distinct().get(Q(pk=pk))
90 except Group.DoesNotExist:
91 raise Http404
92
93 serialzier = GroupMessagesSerializer(
94 group,
95 context={"request": request}
96 )
97
98 return Response(serialzier.data)
99
100 def post(self, request, pk):
101 try: # check is user in group TODO: Make it better
102 Group.objects.filter(
103 Q(owner=request.user) |
104 Q(users__in=(request.user.pk, ))
105 ).distinct().get(Q(pk=pk))
106 except Group.DoesNotExist:
107 raise Http404
108
109 request.data['sender'] = request.user.pk
110 request.data['reciever'] = pk
111 serializer = GmSerializer(data=request.data)
112 serializer.is_valid(raise_exception=True)
113 serializer.save()
114
115 return Response(serializer.data) \ No newline at end of file