File: //home/arjun/projects/unlimited-leads/Unlimited-Leads-Be/user/paginations.py
from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response
from rest_framework import status
class UserPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 100
def get_paginated_response(self,data):
return Response({
"count": self.page.paginator.count,
"current_page": self.page.number,
"next_page": self.page.number + 1 if self.page.has_next() else None,
"previous_page": self.page.number - 1 if self.page.has_previous() else None,
"total_pages": self.page.paginator.num_pages,
"data": data,
"success": True,
"statusCode": status.HTTP_200_OK,
"message": "Retrieved successfully."
})
class UserSearchPagination(PageNumberPagination):
page_size = 10
page_size_query_param = "page_size"
max_page_size = 100
def get_paginated_response(self, data):
return Response(
{
"success": True,
"message": "Retrieved successfully.",
"statusCode": status.HTTP_200_OK,
"count": self.page.paginator.count,
"current_page": self.page.number,
"next_page": self.page.number + 1 if self.page.has_next() else None,
"previous_page": (
self.page.number - 1 if self.page.has_previous() else None
),
"total_pages": self.page.paginator.num_pages,
"data": data,
},
status=status.HTTP_200_OK,
)