Skip to content

Commit a180489

Browse files
authored
Paginate Event Recommendation API (#67)
1 parent e49c4ce commit a180489

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

events/tests/test_apis.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ def test_event_recommendations(self, api_client):
122122

123123
response = api_client.get(reverse("recommendation", args=[event.slug]))
124124
assert response.status_code == status.HTTP_200_OK
125-
126-
returned_ids = {e["id"] for e in response.data}
125+
results = response.data["results"]
126+
returned_ids = {e["id"] for e in results}
127127
assert similar_event.id in returned_ids
128128
assert event.id not in returned_ids
129129
# Similar events + 5 latest events
130-
assert len(response.data) == 6
130+
assert len(results) == 6

events/v1/views.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
from rest_framework import status
21
from rest_framework.generics import ListAPIView, RetrieveAPIView
3-
from rest_framework.response import Response
42
from rest_framework.views import APIView
53

64
from django.shortcuts import get_object_or_404
@@ -54,9 +52,14 @@ class PlaylistListView(ListAPIView):
5452

5553
class EventRecommendationsView(APIView):
5654
""" View for listing similar events """
55+
pagination_class = CustomPageNumberPagination
5756

5857
def get(self, request, event_slug, *args, **kwargs):
5958
""" Get similar events based on the same playlist, presenter or tags """
6059
similar_events = get_similar_events(event_slug)
61-
serializer = EventSerializer(similar_events, many=True)
62-
return Response(serializer.data, status=status.HTTP_200_OK)
60+
61+
paginator = self.pagination_class()
62+
paginated_events = paginator.paginate_queryset(similar_events, request, view=self)
63+
64+
serializer = EventSerializer(paginated_events, many=True)
65+
return paginator.get_paginated_response(serializer.data)

0 commit comments

Comments
 (0)