diff --git a/events/tests/test_apis.py b/events/tests/test_apis.py index 744fc1f..b28d050 100644 --- a/events/tests/test_apis.py +++ b/events/tests/test_apis.py @@ -122,9 +122,9 @@ def test_event_recommendations(self, api_client): response = api_client.get(reverse("recommendation", args=[event.slug])) assert response.status_code == status.HTTP_200_OK - - returned_ids = {e["id"] for e in response.data} + results = response.data["results"] + returned_ids = {e["id"] for e in results} assert similar_event.id in returned_ids assert event.id not in returned_ids # Similar events + 5 latest events - assert len(response.data) == 6 + assert len(results) == 6 diff --git a/events/v1/views.py b/events/v1/views.py index 5590f23..2b04e08 100644 --- a/events/v1/views.py +++ b/events/v1/views.py @@ -1,6 +1,4 @@ -from rest_framework import status from rest_framework.generics import ListAPIView, RetrieveAPIView -from rest_framework.response import Response from rest_framework.views import APIView from django.shortcuts import get_object_or_404 @@ -54,9 +52,14 @@ class PlaylistListView(ListAPIView): class EventRecommendationsView(APIView): """ View for listing similar events """ + pagination_class = CustomPageNumberPagination def get(self, request, event_slug, *args, **kwargs): """ Get similar events based on the same playlist, presenter or tags """ similar_events = get_similar_events(event_slug) - serializer = EventSerializer(similar_events, many=True) - return Response(serializer.data, status=status.HTTP_200_OK) + + paginator = self.pagination_class() + paginated_events = paginator.paginate_queryset(similar_events, request, view=self) + + serializer = EventSerializer(paginated_events, many=True) + return paginator.get_paginated_response(serializer.data)