diff --git a/backend/secfit/users/views.py b/backend/secfit/users/views.py index 4f09f5210e94b72df4846f2b8d065ba6f09e1b22..6da28493cd71dcf6a6ff3ba597d0c6a214575155 100644 --- a/backend/secfit/users/views.py +++ b/backend/secfit/users/views.py @@ -95,8 +95,24 @@ class OfferList( def perform_create(self, serializer): serializer.save(owner=self.request.user) + def filter_on_status(self, query_set, query_params, user): + status = query_params.get("status", None) + if status is not None and self.request is not None: + query_set = query_set.filter(status=status) + if query_params.get("status", None) is None: + query_set = Offer.objects.filter(Q(owner=user)).distinct() + return query_set + + def filter_on_category(self, query_set, query_params, user): + category = query_params.get("category", None) + if category is not None and query_params is not None: + if category == "sent": + query_set = query_set.filter(owner=user) + elif category == "received": + query_set = query_set.filter(recipient=user) + return query_set + def get_queryset(self): - query_set = Offer.objects.none() result = Offer.objects.none() if self.request.user: @@ -106,20 +122,8 @@ class OfferList( query_params = self.request.query_params user = self.request.user - # filtering by status (if provided) - status = query_params.get("status", None) - if status is not None and self.request is not None: - query_set = query_set.filter(status=status) - if query_params.get("status", None) is None: - query_set = Offer.objects.filter(Q(owner=user)).distinct() - - # filtering by category (sent or received) - category = query_params.get("category", None) - if category is not None and query_params is not None: - if category == "sent": - query_set = query_set.filter(owner=user) - elif category == "received": - query_set = query_set.filter(recipient=user) + query_set = self.filter_on_status(query_set, query_params, user) + query_set = self.filter_on_category(query_set, query_params, user) return query_set return result