def METHOD_NAME(self, request):
    page = self.get_page(request)
    page_size = self.get_page_size(request)
    order_by, order = self.get_order_by(request)
    format_type = self.get_format_type(request)
    filters = self._parse_query_params(request.query_params)
    start = page_size * (page - 1)
    end = page_size * page
    # Collections
    if format_type == 'role' \
            or any(filters[k] for k in CONTENT_ONLY_FILTERS):
        collections_count = 0
        collections = []
    else:
        collection_search = CollectionSearch(filters, order_by, order)
        collections_count = collection_search.count()
        collections = collection_search.search()[start:end]
        # TODO(cutwater): This function should be refactored in order
        #  to annotate collection objects retrieved withing search class.
        #  However due to initial design search() function returns
        #  a queryset, while pagination is performed outside.
        #  This makes injecting content_match currently impossible.
        collection_search._add_content_match(collections)
    # Contents
    if format_type == 'collection':
        content_count = 0
        contents = []
    else:
        content_search = ContentSearch(filters, order_by, order)
        content_count = content_search.count()
        if len(collections) >= page_size:
            contents = models.Content.objects.none()
        else:
            c_start = max(0, start - collections_count)
            c_end = end - collections_count
            contents = content_search.search()[c_start:c_end]
    result = {
        'collection': {
            'count': collections_count,
            'results': serializers_int.CollectionSearchSerializer(
                collections, many=True).data
        },
        'content': {
            'count': content_count,
            'results': serializers_v1.RoleSearchSerializer(
                contents, many=True).data,
        },
    }
    return Response(result)