def do_POST(self):
     """Handle POST message containing JSON request from controller."""
     header = self.headers.getheader('content-type')
     if header == 'application/x-www-form-urlencoded':
         content_length = int(self.headers.getheader('content-length'))
         post_body = self.rfile.read(content_length)
         post_json = json.loads(post_body)
         message_id = post_json["id"]
         try:
             result = getattr(RemoteProcedureCall, post_json["method"])(self.server._node, post_json["params"])
             lib.send_json_rpc_result(self, message_id, result)
         except AttributeError:
             lib.send_json_rpc_error(self, message_id, '-32601', data=('Node has no method named: %s' % post_json["method"]))
         except lib.RemoteProcedureCallError as exception:
             lib.send_json_rpc_error(self, message_id, '-32603', data=exception)
Example #2
0
 def do_POST(self):
     """Handle POST message containing JSON request."""
     header = self.headers.getheader('content-type')
     if header == 'application/x-www-form-urlencoded':
         try:
             content_length = int(self.headers.getheader('content-length'))
             post_body = self.rfile.read(content_length).decode('utf-8')
             self.controller.print_debug(TAG,  'post body: ' + str(post_body))
             rpc = self._RemoteProcedureCall()
             rpc.request = json.loads(post_body)
             rpc = self._validate_request(rpc)
             rpc.params = rpc.request['params']
             rpc = self._validate_method_params(rpc)
             result = self._call_method(rpc)
             lib.send_json_rpc_result(self, rpc.id, result)
         except lib.RemoteProcedureCallError as exception:
             lib.send_json_rpc_error(self, rpc.id, exception.code, exception.data)
Example #3
0
 def do_POST(self):
     """Handle POST message containing JSON request."""
     header = self.headers.getheader('content-type')
     if header == 'application/x-www-form-urlencoded':
         try:
             content_length = int(self.headers.getheader('content-length'))
             post_body = self.rfile.read(content_length).decode('utf-8')
             self.controller.print_debug(TAG,
                                         'post body: ' + str(post_body))
             rpc = self._RemoteProcedureCall()
             rpc.request = json.loads(post_body)
             rpc = self._validate_request(rpc)
             rpc.params = rpc.request['params']
             rpc = self._validate_method_params(rpc)
             result = self._call_method(rpc)
             lib.send_json_rpc_result(self, rpc.id, result)
         except lib.RemoteProcedureCallError as exception:
             lib.send_json_rpc_error(self, rpc.id, exception.code,
                                     exception.data)
 def do_POST(self):
     """Handle POST message containing JSON request from controller."""
     header = self.headers.getheader('content-type')
     if header == 'application/x-www-form-urlencoded':
         content_length = int(self.headers.getheader('content-length'))
         post_body = self.rfile.read(content_length)
         post_json = json.loads(post_body)
         message_id = post_json["id"]
         try:
             result = getattr(RemoteProcedureCall,
                              post_json["method"])(self.server._node,
                                                   post_json["params"])
             lib.send_json_rpc_result(self, message_id, result)
         except AttributeError:
             lib.send_json_rpc_error(self,
                                     message_id,
                                     '-32601',
                                     data=('Node has no method named: %s' %
                                           post_json["method"]))
         except lib.RemoteProcedureCallError as exception:
             lib.send_json_rpc_error(self,
                                     message_id,
                                     '-32603',
                                     data=exception)