def read_list(self, request):
        """
        :param request: an apiv2 request object
        :return: request if successful with entities set on request
        """
        request_filters = request.context_params.get(
            self.request_filters_property, {})
        request_filters.update(**self.get_limit_and_offset(request_filters))
        entities = self.get_entity_list(request, **request_filters)
        request.context_params[self.list_property_name] = entities

        # offset and limit don't make sense to get aggregates
        count_request_filters = request_filters.copy()
        count_request_filters.pop('offset', None)
        count_request_filters.pop('limit', None)
        count_request_filters.pop('order_by', None)
        total_count = self.get_entity_list_total_count(request,
                                                       **count_request_filters)

        request.context_params[self.entity_list_total_count_property_name] = \
            total_count
        return request