From d6a28ffa614652016538e971c6654a17ee2317da Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Fri, 14 Jan 2022 10:59:52 -0400
Subject: [PATCH] Ensure filter parameters are not "undefinde"

---
 program/views.py | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/program/views.py b/program/views.py
index ceec1eb5..194fdd59 100644
--- a/program/views.py
+++ b/program/views.py
@@ -310,27 +310,32 @@ class APIShowViewSet(viewsets.ModelViewSet):
             shows = shows.filter(is_public=False)
 
         if owner := self.request.query_params.get('owner'):
-            # Filter shows by owner
-            shows = shows.filter(owners__in=[int(owner)])
+            if owner != 'undefined':
+                shows = shows.filter(owners__in=[int(owner)])
 
         if host := self.request.query_params.get('host'):
-            # Filter shows by host
-            shows = shows.filter(hosts__in=[int(host)])
+            if host != 'undefined':
+                shows = shows.filter(hosts__in=[int(host)])
 
         if language := self.request.query_params.get('language'):
-            shows = shows.filter(language__in=[int(language)])
+            if language != 'undefined':
+                shows = shows.filter(language__in=[int(language)])
 
         if type_ := self.request.query_params.get('type'):
-            shows = shows.filter(type__in=[int(type_)])
+            if type_ != 'undefined':
+                shows = shows.filter(type__in=[int(type_)])
 
         if category := self.request.query_params.get('category'):
-            shows = shows.filter(category__in=[int(category)])
+            if category != 'undefined':
+                shows = shows.filter(category__in=[int(category)])
 
         if topic := self.request.query_params.get('topic'):
-            shows = shows.filter(topic__in=[int(topic)])
+            if topic != 'undefined':
+                shows = shows.filter(topic__in=[int(topic)])
 
         if musicfocus := self.request.query_params.get('musicfocus'):
-            shows = shows.filter(musicfocus__in=[int(musicfocus)])
+            if musicfocus != 'undefined':
+                shows = shows.filter(musicfocus__in=[int(musicfocus)])
 
         return shows
 
-- 
GitLab