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 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}))