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)
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
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'])
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"])
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)