28 lines
851 B
Python
28 lines
851 B
Python
""" CCX API v0 Paginators. """
|
|
|
|
|
|
from edx_rest_framework_extensions.paginators import DefaultPagination
|
|
|
|
|
|
class CCXAPIPagination(DefaultPagination):
|
|
"""
|
|
Pagination format used by the CCX API.
|
|
"""
|
|
page_size_query_param = "page_size"
|
|
|
|
def get_paginated_response(self, data):
|
|
"""
|
|
Annotate the response with pagination information.
|
|
"""
|
|
response = super().get_paginated_response(data)
|
|
|
|
# Add the current page to the response.
|
|
response.data["current_page"] = self.page.number
|
|
|
|
# This field can be derived from other fields in the response,
|
|
# so it may make sense to have the JavaScript client calculate it
|
|
# instead of including it in the response.
|
|
response.data["start"] = (self.page.number - 1) * self.get_page_size(self.request)
|
|
|
|
return response
|