From e717ea3b076bccd83e694f2b7002cafd980a244d Mon Sep 17 00:00:00 2001 From: Uttkarsh-raj Date: Thu, 11 Jul 2024 12:44:40 +0530 Subject: [PATCH] extracted fields to a variable --- website/api/views.py | 52 +++++++++---------- .../migrations/0095_company_description.py | 17 ++++++ 2 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 website/migrations/0095_company_description.py diff --git a/website/api/views.py b/website/api/views.py index 310e3b9bf..d3be8f9ce 100644 --- a/website/api/views.py +++ b/website/api/views.py @@ -472,41 +472,33 @@ def post(self, request, *args, **kwargs): class BugHuntApiViewset(APIView): permission_classes = [AllowAny] - def get_active_hunts(self, request, *args, **kwargs): + def get_active_hunts(self, request, fields, *args, **kwargs): hunts = ( - Hunt.objects.values( - "id", "name", "url", "prize", "logo", "banner", "description", "starts_on", "end_on" - ) + Hunt.objects.values(*fields) .filter(is_published=True, starts_on__lte=datetime.now(), end_on__gte=datetime.now()) .order_by("-prize") ) return Response(hunts) - def get_previous_hunts(self, request, *args, **kwargs): + def get_previous_hunts(self, request, fields, *args, **kwargs): hunts = ( - Hunt.objects.values( - "id", "name", "url", "prize", "logo", "banner", "description", "starts_on", "end_on" - ) + Hunt.objects.values(*fields) .filter(is_published=True, end_on__lte=datetime.now()) .order_by("-end_on") ) return Response(hunts) - def get_upcoming_hunts(self, request, *args, **kwargs): + def get_upcoming_hunts(self, request, fields, *args, **kwargs): hunts = ( - Hunt.objects.values( - "id", "name", "url", "prize", "logo", "banner", "description", "starts_on", "end_on" - ) + Hunt.objects.values(*fields) .filter(is_published=True, starts_on__gte=datetime.now()) .order_by("starts_on") ) return Response(hunts) - def get_search_by_name(self, request, search_query, *args, **kwargs): + def get_search_by_name(self, request, search_query, fields, *args, **kwargs): hunts = ( - Hunt.objects.values( - "id", "name", "url", "prize", "logo", "banner", "description", "starts_on", "end_on" - ) + Hunt.objects.values(*fields) .filter(is_published=True, name__icontains=search_query) .order_by("end_on") ) @@ -517,21 +509,27 @@ def get(self, request, *args, **kwargs): previousHunt = request.query_params.get("previousHunt") upcomingHunt = request.query_params.get("upcomingHunt") search_query = request.query_params.get("search") + fields = [ + "id", + "name", + "url", + "prize", + "logo", + "banner", + "description", + "starts_on", + "end_on", + ] + if search_query: - return self.get_search_by_name(request, search_query, *args, **kwargs) + return self.get_search_by_name(request, search_query, fields, *args, **kwargs) elif activeHunt: - return self.get_active_hunts(request, *args, **kwargs) + return self.get_active_hunts(request, fields, *args, **kwargs) elif previousHunt: - return self.get_previous_hunts(request, *args, **kwargs) + return self.get_previous_hunts(request, fields, *args, **kwargs) elif upcomingHunt: - return self.get_upcoming_hunts(request, *args, **kwargs) - hunts = ( - Hunt.objects.values( - "id", "name", "url", "prize", "logo", "banner", "description", "starts_on", "end_on" - ) - .filter(is_published=True) - .order_by("-end_on") - ) + return self.get_upcoming_hunts(request, fields, *args, **kwargs) + hunts = Hunt.objects.values(*fields).filter(is_published=True).order_by("-end_on") return Response(hunts) diff --git a/website/migrations/0095_company_description.py b/website/migrations/0095_company_description.py new file mode 100644 index 000000000..99aad8599 --- /dev/null +++ b/website/migrations/0095_company_description.py @@ -0,0 +1,17 @@ +# Generated by Django 5.0.6 on 2024-07-11 07:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("website", "0094_chatbotlog"), + ] + + operations = [ + migrations.AddField( + model_name="company", + name="description", + field=models.CharField(blank=True, max_length=500, null=True), + ), + ]