1
0

favoritecontacts.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.db.models import CharField
  2. from django.db.models.functions import Cast
  3. from rest_framework import viewsets, permissions
  4. from rest_framework.response import Response
  5. from webservice_running.models import Favoritecontacts
  6. from webservice_running.serializer import FavoritecontactsSerializer
  7. class FavoritecontactsMVS(viewsets.ModelViewSet):
  8. queryset = Favoritecontacts.objects.all()
  9. serializer_class = FavoritecontactsSerializer
  10. permission_classes = [
  11. permissions.IsAuthenticated
  12. ]
  13. def list(self, request, *args, **kwargs):
  14. client = self.request.query_params.get('client')
  15. queryset = Favoritecontacts.objects.all()
  16. if client is not None:
  17. queryset = queryset \
  18. .annotate(client_int=Cast('client', output_field=CharField())) \
  19. .filter(client_int=client)
  20. serializer = self.get_serializer(queryset, many=True)
  21. return Response(serializer.data)
  22. def delete(self, request, *args, **kwargs):
  23. client = self.request.query_params.get('client')
  24. queryset = Favoritecontacts.objects.all()
  25. if not client:
  26. return Response(
  27. {'error': 'client parameter is required'},
  28. status=status.HTTP_400_BAD_REQUEST
  29. )
  30. queryset = queryset \
  31. .annotate(client_int=Cast('client', output_field=CharField())) \
  32. .filter(client_int=client)
  33. queryset.delete()
  34. return Response(
  35. {'message': f'Objects with client {client} were deleted'},
  36. status=status.HTTP_204_NO_CONTENT
  37. )