feat: notification pagination (#1580)
This commit is contained in:
parent
8e70a036b7
commit
479dfc17f5
1 changed files with 12 additions and 1 deletions
|
|
@ -6,6 +6,7 @@ from django.utils import timezone
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from sentry_sdk import capture_exception
|
from sentry_sdk import capture_exception
|
||||||
|
from plane.utils.paginator import BasePaginator
|
||||||
|
|
||||||
# Module imports
|
# Module imports
|
||||||
from .base import BaseViewSet, BaseAPIView
|
from .base import BaseViewSet, BaseAPIView
|
||||||
|
|
@ -13,7 +14,7 @@ from plane.db.models import Notification, IssueAssignee, IssueSubscriber, Issue
|
||||||
from plane.api.serializers import NotificationSerializer
|
from plane.api.serializers import NotificationSerializer
|
||||||
|
|
||||||
|
|
||||||
class NotificationViewSet(BaseViewSet):
|
class NotificationViewSet(BaseViewSet, BasePaginator):
|
||||||
model = Notification
|
model = Notification
|
||||||
serializer_class = NotificationSerializer
|
serializer_class = NotificationSerializer
|
||||||
|
|
||||||
|
|
@ -83,6 +84,16 @@ class NotificationViewSet(BaseViewSet):
|
||||||
).values_list("pk", flat=True)
|
).values_list("pk", flat=True)
|
||||||
notifications = notifications.filter(entity_identifier__in=issue_ids)
|
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)
|
serializer = NotificationSerializer(notifications, many=True)
|
||||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue