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/views.py | |
| parent | b77b24cfae3ccafd4bbbd50c87107ebfd88bf282 (diff) | |
| download | lom_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.py | 38 | 
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 @@ | |||
| 1 | from django.db.models.query import QuerySet | 1 | from django.db.models.query import QuerySet | 
| 2 | from django.http.response import Http404 | 2 | from django.http.response import Http404 | 
| 3 | from rest_framework.response import Response | 3 | from rest_framework.response import Response | 
| 4 | from rest_framework.serializers import Serializer | ||
| 5 | from rest_framework.views import APIView | 4 | from rest_framework.views import APIView | 
| 6 | from rest_framework import permissions | 5 | from rest_framework import permissions | 
| 7 | from rest_framework import generics | 6 | from 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 | |||
| 80 | class 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 | ||
