Beispiel #1
0
 def _process_get(self, fields=[]):
     response = HttpResponse(node=self,
                             content_type=self._matching_outputs[0])
     
     request_range = self.request.META.get('HTTP_RANGE')
     kwparams = {}
     if not request_range:
         response['Accept-Range'] = self.range_unit
     else:
         kwparams = {'offset': request_range.offset,
                     'limit' : request_range.limit}    
     items = self._call_http_method_handler(**kwparams)
     if items is None:
         raise ValueError('%s() method of node %s returned None.' % 
                          (self.method_handlers.get(self.request.method),
                           self.__class__.__name__))
     
     if not len(items) and request_range: 
         raise RequestedRangeNotSatisfiableError(self)
     
     response.payload = []
     for item in items:
         try:
             response.payload.append(item.render_in_collection())
         except ForbiddenError:
             pass
     
     if not len(response.payload):
         response.status = 204
     elif request_range:
         response.status = 206 
     else:
         response.status = 200
         
     return response
Beispiel #2
0
    def _process_get(self):
        response = HttpResponse(node=self,
                                content_type=self._matching_outputs[0])
        data = self._call_http_method_handler(method='GET')
        for node_cls in self.__class__.get_children_nodes():
            try:
                child_node = node_cls(self.request, parent_node=self, **self._chained_args)
                data.update(child_node.render_in_parent())
            except ForbiddenError:
                continue

        response.payload = data
        return response
Beispiel #3
0
    def _process_get(self):
        response = HttpResponse(node=self,
                                content_type=self._matching_outputs[0])
        data = self._call_http_method_handler(method='GET')

        for node_cls in self.__class__.get_children_nodes():
            try:
                child_node = node_cls(self.request, **self._chained_args)
                data.update(child_node.render_in_parent())
            except ForbiddenError:
                continue

        response.payload = data
        return response
Beispiel #4
0
    def _process_get(self, fields=[]):
        response = HttpResponse(node=self,
                                content_type=self._matching_outputs[0])

        request_range = self.request.META.get('HTTP_RANGE')
        kwparams = {}
        if not request_range:
            response['Accept-Range'] = self.range_unit
        else:
            kwparams = {
                'offset': request_range.offset,
                'limit': request_range.limit
            }
        items = self._call_http_method_handler(**kwparams)
        if items is None:
            raise ValueError('%s() method of node %s returned None.' %
                             (self.method_handlers.get(self.request.method),
                              self.__class__.__name__))

        if not len(items) and request_range:
            raise RequestedRangeNotSatisfiableError(self)

        response.payload = []
        for item in items:
            try:
                response.payload.append(item.render_in_collection())
            except ForbiddenError:
                pass

        if not len(response.payload):
            response.status = 204
        elif request_range:
            response.status = 206
        else:
            response.status = 200

        return response