Exemple #1
0
 def handle_request(self, request, **kwargs):
     '''
     Called in every request made to Resource
     '''
     try:
         if request.method not in self.routes:
             return to_http(request, status=404)
         method = self.routes[request.method]
         if not hasattr(self, method):
             return HttpResponse(status=405)
         return getattr(self, 'handle_'+method)(request, kwargs)
     except (ObjectDoesNotExist, IOError):
         # ObjectDoesNotExist: if return model instance does not exist
         # IOError: if return file not found
         return HttpResponse(status=404)
Exemple #2
0
 def handle_response(self, request, response, fields, parameters):
     '''
     Proccess response into a JSON serializable object
     '''
     current_fields = fields(kwargs) if callable(fields) else fields
     status = DEFAULT_STATUS_CODE
     if is_tuple(response):
         status, response = response
     if is_valuesset(response):
         response = self.handle_list_response(
             request, list(response), current_fields, parameters)
     elif is_queryset(response):
         response = self.select_related(response, current_fields)
         response = self.handle_queryset_response(
             request, response, current_fields, parameters)
     elif is_modelinstance(response):
         response = self.handle_model_response(response, current_fields)
     elif is_generator(response) or is_list(response):
         response = self.handle_list_response(
             request, response, current_fields, parameters)
     
     response = self.uglify_json(response) if self.uglify else response
     return to_http(request, response, status)
 def to_http(self, content, basic):
     request = self.factory.get('/')
     return to_http( request, content, basic_serialization=basic )