From 64c172ab5942214777eb75e2d49edb8c98ec1837 Mon Sep 17 00:00:00 2001 From: bobbyvish Date: Thu, 21 Mar 2024 13:13:06 +0530 Subject: [PATCH] feat - meal record filter based on date --- module_activity/api/urls.py | 1 + module_activity/api/views.py | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/module_activity/api/urls.py b/module_activity/api/urls.py index daedfe5..4d789ca 100644 --- a/module_activity/api/urls.py +++ b/module_activity/api/urls.py @@ -25,6 +25,7 @@ urlpatterns = [ path("meal-symptoms//", views.MealSymptomAPIView.as_view()), path("meal/", views.MealAPIView.as_view()), + path("meal/date/", views.MealDateAPIView.as_view()), path("meal//", views.MealAPIView.as_view()), path("report/", views.ReportAPIView.as_view()), diff --git a/module_activity/api/views.py b/module_activity/api/views.py index 00fd1ed..f4cb2c5 100644 --- a/module_activity/api/views.py +++ b/module_activity/api/views.py @@ -617,6 +617,32 @@ class MealAPIView(APIView): message=constants.RECORD_DELETED, status=status.HTTP_204_NO_CONTENT ) +class MealDateAPIView(APIView): + authentication_classes = [JWTAuthentication] + permission_classes = [IsAuthenticated] + serializer_class = MealRecordSerializer + model = MealRecord + + def get(self, request): + date = request.GET.get("date") + + if not date: + return ApiResponse.error( + message=constants.FAILURE, errors="Date parameter is missing" + ) + + try: + # Convert the date string to a datetime object + date_obj = datetime.strptime(date, "%Y-%m-%d").date() + except ValueError: + return ApiResponse.error( + message=constants.FAILURE, errors="Invalid date format" + ) + obj = self.model.objects.filter(date=date_obj) + serializer = self.serializer_class(obj, many=True) + return ApiResponse.success(message=constants.SUCCESS, data=serializer.data) + + from collections import defaultdict