Intercept the request and response.

        This function lets `HttpStatusCodeError`s fall through. They
        are caught and transformed into HTTP responses by the caller.

        :return: ``HttpResponse``

def __handle_request(self, request, *args, **kw):
        """ Intercept the request and response.

        This function lets `HttpStatusCodeError`s fall through. They
        are caught and transformed into HTTP responses by the caller.

        :return: ``HttpResponse``
        """

        self._authenticate(request)
        self._check_permission(request)
        method = self._get_method(request)
        data = self._get_input_data(request)
        data = self._clean_input_data(data, request)
        response = self._exec_method(method, request, data, *args, **kw)
        return self._process_response(response, request)