Example #1
0
    def do_POST(self, request, response):
        """
        Handle a POST request

        :param request: The HTTP request bean
        :param request: The HTTP response handler
        """
        # Get the request JSON content
        data = jsonrpclib.loads(to_str(request.read_data()))

        # Convert from Jabsorb
        data = jabsorb.from_jabsorb(data)

        # Dispatch
        try:
            result = self._unmarshaled_dispatch(data, self._simple_dispatch)
        except NoMulticallResult:
            # No result (never happens, but who knows...)
            result = None

        if result is not None:
            # Convert result to Jabsorb
            if 'result' in result:
                result['result'] = jabsorb.to_jabsorb(result['result'])

            # Store JSON
            result = jsonrpclib.jdumps(result)
        else:
            # It was a notification
            result = ''

        # Send the result
        response.send_content(200, result, 'application/json-rpc')
Example #2
0
    def do_POST(self, request, response):
        """
        Handle a POST request

        :param request: The HTTP request bean
        :param request: The HTTP response handler
        """
        # Get the request JSON content
        data = jsonrpclib.loads(to_str(request.read_data()))

        # Convert from Jabsorb
        data = jabsorb.from_jabsorb(data)

        # Dispatch
        try:
            result = self._unmarshaled_dispatch(data, self._simple_dispatch)

        except NoMulticallResult:
            # No result (never happens, but who knows...)
            result = None

        if result is not None:
            # Convert result to Jabsorb
            if 'result' in result:
                result['result'] = jabsorb.to_jabsorb(result['result'])

            # Store JSON
            result = jsonrpclib.jdumps(result)

        else:
            # It was a notification
            result = ''

        # Send the result
        response.send_content(200, result, 'application/json-rpc')
Example #3
0
    def _on_message(self, ws, payload):
        logger.debug('Got message: %r' % (payload, ))

        msg = loads(payload)
        method = msg.get('method')
        logger.debug('Got message: %r' % (msg, ))

        if method:
            f = self.method_register.get(method)
            if f:
                logger.info('Calling %s with %r' % (method, msg['params']))
                f(*msg['params'])
            else:
                logger.warning('Unknown method %s' % method)
        else:
            logger.info('Not sure what to do about: %r' % (msg, ))
Example #4
0
 def parse_request(self, request_body):
     try:
         request = loads(request_body)
     except:
         # Bad request formatting
         # self.traceback()
         return self.faults.parse_error()
     self._requests = request
     self._batch = False
     request_list = []
     if isbatch(request):
         self._batch = True
         for req in request:
             req_tuple = (req["method"], req.get("params", []))
             request_list.append(req_tuple)
     else:
         self._requests = [request]
         request_list.append((request["method"], request.get("params", [])))
     return tuple(request_list)
Example #5
0
 def parse_request(self, request_body):
     try:
         request = loads(request_body)
     except:
         # Bad request formatting
         self.traceback()
         return self.faults.parse_error()
     self._requests = request
     self._batch = False
     request_list = []
     if isbatch(request):
         self._batch = True
         for req in request:
             req_tuple = (req['method'], req.get('params', []))
             request_list.append(req_tuple)
     else:
         self._requests = [request]
         request_list.append((request['method'], request.get('params', [])))
     return tuple(request_list)
Example #6
0
 def parse_request(self, request_body):
     try:
         request_body_str = request_body.decode('utf-8')
         request = loads(request_body_str)
     except:
         # Bad request formatting. Bad.
         self.traceback()
         return self.faults.parse_error()
     self._requests = request
     self._batch = False
     request_list = []
     if isbatch(request):
         self._batch = True
         for req in request:
             req_tuple = (req['method'], req.get('params', []))
             request_list.append(req_tuple)
     else:
         self._requests = [request,]
         request_list.append(
             (request['method'], request.get('params', []))
         )
     return tuple(request_list)