Skip to content

Commit

Permalink
feat: notification pagination (#1580)
Browse files Browse the repository at this point in the history
  • Loading branch information
pablohashescobar committed Jul 24, 2023
1 parent 8e70a03 commit 479dfc1
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion apiserver/plane/api/views/notification.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
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
from plane.db.models import Notification, IssueAssignee, IssueSubscriber, Issue
from plane.api.serializers import NotificationSerializer


class NotificationViewSet(BaseViewSet):
class NotificationViewSet(BaseViewSet, BasePaginator):
model = Notification
serializer_class = NotificationSerializer

Expand Down Expand Up @@ -83,6 +84,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:
Expand Down

0 comments on commit 479dfc1

Please sign in to comment.