From b8ad1961d1391dfb6ba58eca01283d6270dd7e8f Mon Sep 17 00:00:00 2001 From: yann Date: Fri, 6 Jun 2025 13:55:09 +0200 Subject: [PATCH] just test exceptions for a wrong value in query --- softdesk/support/views.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/softdesk/support/views.py b/softdesk/support/views.py index aca4b5f..7e3f0c9 100644 --- a/softdesk/support/views.py +++ b/softdesk/support/views.py @@ -26,6 +26,27 @@ class ProjectViewSet(ModelViewSet): queryset = Project.objects.filter(active=True) + def get_queryset(self): + """ + add a filter on contributor or author in querystring + """ + if self.request.GET.get('contributor'): + requested_contributor = self.request.GET.get('contributor') + try: + user = User.objects.get(username=requested_contributor) + return Project.objects.filter(contributors=user) + except User.DoesNotExist: + return Response(f"{requested_contributor} doesn't exist", + status=status.HTTP_404_NOT_FOUND) + if self.request.GET.get('author'): + requested_author = self.request.GET.get('author') + try: + user = User.objects.get(username=requested_author) + return Project.objects.filter(author=user) + except User.DoesNotExist: + return Response(f"{requested_author} doesn't exist", + status=status.HTTP_404_NOT_FOUND) + def retrieve(self, request, *args, **kwargs): """ check if requestor is in the project's contributor @@ -57,6 +78,16 @@ class ProjectViewSet(ModelViewSet): if contributor_serializer.is_valid(): contributor_serializer.save() + @action(detail=False, methods=['get']) + def test(self, request): + requested_user = self.request.GET.get('author') + try: + user = User.objects.get(username=requested_user) + return Response(UserListSerializer(user).data) + except: + return Response(f"{requested_user} isn't a valid user") + + @action(detail=True, methods=['patch'], permission_classes=[IsContributor]) def contributor(self, request, pk): """Add a contributor to a project