Skip to content

Commit 204abe3

Browse files
committed
Use Django pagination
1 parent 267b803 commit 204abe3

File tree

1 file changed

+6
-28
lines changed

1 file changed

+6
-28
lines changed

safe_transaction_service/history/views_v2.py

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,7 @@ class SafeExportView(GenericAPIView):
680680
"""
681681

682682
serializer_class = serializers.SafeExportTransactionSerializer
683+
pagination_class = pagination.ListPagination
683684

684685
def get(self, request, address):
685686
"""
@@ -705,12 +706,9 @@ def get(self, request, address):
705706
# Parse query parameters
706707
execution_date_gte = request.query_params.get("execution_date__gte")
707708
execution_date_lte = request.query_params.get("execution_date__lte")
708-
limit = int(request.query_params.get("limit", 1000))
709-
offset = int(request.query_params.get("offset", 0))
710-
711-
# Validate limit
712-
if limit > 1000:
713-
limit = 1000
709+
paginator = pagination.ListPagination(self.request, max_limit=1000)
710+
limit = paginator.get_limit(request)
711+
offset = paginator.get_offset(request)
714712

715713
# Parse dates if provided
716714
parsed_execution_date_gte = None
@@ -775,29 +773,9 @@ def get(self, request, address):
775773
limit=limit,
776774
offset=offset,
777775
)
778-
779-
# Build pagination info
780-
base_url = request.build_absolute_uri(request.path)
781-
query_params = request.GET.copy()
782-
783-
next_url = None
784-
if offset + limit < total_count:
785-
query_params["offset"] = offset + limit
786-
next_url = f"{base_url}?{query_params.urlencode()}"
787-
788-
previous_url = None
789-
if offset > 0:
790-
query_params["offset"] = max(0, offset - limit)
791-
previous_url = f"{base_url}?{query_params.urlencode()}"
776+
paginator.set_count(total_count)
792777

793778
# Serialize the data
794779
serializer = self.get_serializer(transactions, many=True)
795780

796-
return Response(
797-
{
798-
"count": total_count,
799-
"next": next_url,
800-
"previous": previous_url,
801-
"results": serializer.data,
802-
}
803-
)
781+
return paginator.get_paginated_response(serializer.data)

0 commit comments

Comments
 (0)