From 0975dac484af01e323aa6ab4661cb81bec77cad2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?H=C3=A5vard=20Farestveit?= <havard.farestveit@ntnu.no>
Date: Tue, 6 Apr 2021 10:24:21 +0200
Subject: [PATCH] #33 moved code into separate functions

.
---
 backend/secfit/users/views.py | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/backend/secfit/users/views.py b/backend/secfit/users/views.py
index 4f09f521..6da28493 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
-- 
GitLab