Example #1
0
    def build_request(self, handler, request_type):

        ''' Build a request object. '''

        try:
            if hasattr(handler, 'interpreted_body') and handler.interpreted_body is not None:
                request_object = handler.interpreted_body
            else:
                request_object = protojson._load_json_module().loads(handler.request.body)

            try:
                request_id = request_object['id']
                request_agent = request_object['agent']
                request_body = request_object['request']
                request_opts = request_object['opts']
            except AttributeError:
                raise service_handlers.RequestError('Request is missing a valid ID, agent, request opts or request body.')

            self._request['id'] = request_id
            self._request['agent'] = request_agent
            self._request['opts'] = request_opts

            handler._request_envelope['id'] = self._request['id']
            handler._request_envelope['opts'] = self._request['opts']
            handler._request_envelope['agent'] = self._request['agent']

            handler._response_envelope['id'] = self._request['id']

            if self.ServicesConfig.get('debug', False) is True:
                self.logging.info('Decoding request...')

            return self.decode_request(request_type, request_body['params'])

        except (messages.ValidationError, messages.DecodeError), err:
            raise service_handlers.RequestError('Unable to parse request content: %s' % err)
Example #2
0
    def decode_message(cls, response_type, content):

        ''' Decode a JSON-encoded blob into a Message. '''

        mapper = cls()

        interpreted = protojson._load_json_module().loads(content)
        full_response = mapper._decode_message(response_type, interpreted.get('response', {}).get('content', {}))
        return full_response
Example #3
0
	def build_request(self, handler, request_type):

		try:
			request_object = protojson._load_json_module().loads(handler.request.body)
			
			try:
				request_id = request_object['id']
				request_agent = request_object['agent']
				request_body = request_object['request']
				request_opts = request_object['opts']
			except AttributeError, e:
				raise service_handlers.RequestError('Request is missing a valid ID, agent, request opts or request body.')

			self._request['id'] = request_id
			self._request['agent'] = request_agent
			self._request['opts'] = request_opts
			
			handler._response_envelope['id'] = self._request['id']
			
			return self.decode_request(request_type, request_body['params'])
Example #4
0
    def build_request(self, handler, request_type):

        try:
            request_object = protojson._load_json_module().loads(handler.request.body)

            try:
                request_id = request_object["id"]
                request_agent = request_object["agent"]
                request_body = request_object["request"]
                request_opts = request_object["opts"]
            except AttributeError, e:
                raise service_handlers.RequestError(
                    "Request is missing a valid ID, agent, request opts or request body."
                )

            self._request["id"] = request_id
            self._request["agent"] = request_agent
            self._request["opts"] = request_opts

            handler._response_envelope["id"] = self._request["id"]

            return self.decode_request(request_type, request_body["params"])
Example #5
0
    def build_request(self, handler, request_type):

        ''' Build a request object. '''

        try:
            if hasattr(handler, 'interpreted_body') and handler.interpreted_body is not None:
                request_object = handler.interpreted_body
            else:
                request_object = protojson._load_json_module().loads(handler.request.body)

            request_body = request_object.get('request', request_object)
            handler._request_envelope['id'] = request_object.get('id', 1)
            handler._request_envelope['opts'] = request_object.get('opts', {})
            handler._request_envelope['agent'] = request_object.get('agent', {})

            if self.ServicesConfig.get('debug', False) is True:
                self.logging.info('Decoding message...')

            params = request_body.get('params', request_body)
            return self._decode_message(request_type, params)

        except (messages.ValidationError, messages.DecodeError), err:
            raise service_handlers.RequestError('Unable to parse request content: %s' % err)