Example #1
0
def handle_api_call(http_request, url, api):
    if not action_resolver.is_valid_resource(url, api):
        return HttpResponseNotFound()

    action = action_resolver.resolve_action(http_request, url, api)
    if action is None:
        # we could not resolve what action to call for this http request.
        # return method not allowed response
        return HttpResponseNotAllowed("%s:%s" % (url, http_request.method))

    request_body = http_request.read()
    request_data = api_request_builder.build_request_data(
        request_body, http_request.META)
    if request_data.get('error_message'):
        return HttpResponseBadRequest(json.dumps(request_data),
                                      content_type='application/json')

    request = api_request_builder.build_request(http_request=http_request,
                                                url=url,
                                                api=api,
                                                request_data=request_data,
                                                request_body=request_body)

    response = action(request)

    http_response = django_response_builder.build_http_response(
        http_request, response)
    return http_response
Example #2
0
def handle_api_call(http_request, url, api):
    if not action_resolver.is_valid_resource(url, api):
        return HttpResponseNotFound()

    action = action_resolver.resolve_action(http_request, url, api)
    if action is None:
        # we could not resolve what action to call for this http request.
        # return method not allowed response
        return HttpResponseNotAllowed("%s:%s" % (url, http_request.method))

    request_body = http_request.read()
    request_data = api_request_builder.build_request_data(request_body, http_request.META)
    if request_data.get('error_message'):
        return HttpResponseBadRequest(
            json.dumps(request_data), content_type='application/json')

    request = api_request_builder.build_request(http_request=http_request,
                                                url=url, api=api,
                                                request_data=request_data,
                                                request_body=request_body)

    response = action(request)

    http_response = django_response_builder.build_http_response(
        http_request, response)
    return http_response
 def test_should_return_bad_request_for_invalid_data(self):
     response = Response(is_success=False,
                         reason=error_types.InvalidData,
                         data={'defg': 1121})
     http_request = MagicMock()
     http_response = django_response_builder.build_http_response(
         http_request, response)
     self.assertEqual(http_response.status_code, 400)
     self.assertEqual(http_response.content,
                      simplejson.dumps({'defg': 1121}))
 def test_should_return_not_authenticated_response_if_auth_fails(self):
     response = Response(is_success=False,
                         reason=error_types.AuthenticationFailed,
                         data={'asdf': 1121})
     http_request = MagicMock()
     http_response = django_response_builder.build_http_response(
         http_request, response)
     self.assertEqual(http_response.status_code, 401)
     self.assertEqual(http_response.content,
                      simplejson.dumps({'asdf': 1121}))