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
Example #3
0
    def test_build_request_data_when_request_body_is_emtpty(self):
        # the call
        request_data = api_request_builder.build_request_data(
            request_body='', request_meta={})

        assert request_data == {}