From 915bf7daca86c8f849f54a3c9493250b25ec583d Mon Sep 17 00:00:00 2001 From: pablohashescobar Date: Wed, 19 Jul 2023 21:12:35 +0530 Subject: [PATCH] feat: notification pagination --- apiserver/plane/api/views/notification.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apiserver/plane/api/views/notification.py b/apiserver/plane/api/views/notification.py index e81fd2b5f37..825832c333b 100644 --- a/apiserver/plane/api/views/notification.py +++ b/apiserver/plane/api/views/notification.py @@ -6,6 +6,7 @@ from rest_framework import status from rest_framework.response import Response from sentry_sdk import capture_exception +from plane.utils.paginator import BasePaginator # Module imports from .base import BaseViewSet, BaseAPIView @@ -13,7 +14,7 @@ from plane.api.serializers import NotificationSerializer -class NotificationViewSet(BaseViewSet): +class NotificationViewSet(BaseViewSet, BasePaginator): model = Notification serializer_class = NotificationSerializer @@ -84,6 +85,16 @@ def list(self, request, slug): ).values_list("pk", flat=True) notifications = notifications.filter(entity_identifier__in=issue_ids) + # Pagination + if request.GET.get("per_page", False) and request.GET.get("cursor", False): + return self.paginate( + request=request, + queryset=(notifications), + on_results=lambda notifications: NotificationSerializer( + notifications, many=True + ).data, + ) + serializer = NotificationSerializer(notifications, many=True) return Response(serializer.data, status=status.HTTP_200_OK) except Exception as e: