git.fiddlerwoaroof.com
Browse code

tweaked the example a bit, fixed calls to JSON_RPC.eventhandler.log in server

Ed L authored on 01/06/2011 20:41:27
Showing 2 changed files
... ...
@@ -37,8 +37,12 @@ import traceback
37 37
 from jsonrpc.server import ServerEvents, JSON_RPC
38 38
 
39 39
 class JSONRPCTest(ServerEvents):
40
-	def log(self, *a):
41
-		print a
40
+	def log(self, responses, txrequest):
41
+		if isinstance(responses, list):
42
+			for response in responses:
43
+				print txrequest, response.id, response.result or response.error
44
+		else:
45
+			print txrequest, responses.id, responses.result or responses.error
42 46
 
43 47
 	def findmethod(self, method):
44 48
 		if method in set(['add', 'subtract']):
... ...
@@ -67,7 +67,7 @@ class ServerEvents(object):
67 67
 		'''Override to implement custom handling of the method result and request'''
68 68
 		return result
69 69
 
70
-	def log(self, result, request):
70
+	def log(self, response, txrequest):
71 71
 		'''Override to implement custom error handling'''
72 72
 		pass
73 73
 
... ...
@@ -234,12 +234,12 @@ class JSON_RPC(Resource):
234 234
 				result.append(res)
235 235
 
236 236
 
237
-		self.eventhandler.log(result, request)
238 237
 
239 238
 		if result != []:
240 239
 			if not islist: result = result[0]
241 240
 		else: result = None
242 241
 
242
+		self.eventhandler.log(result, request)
243 243
 		return result
244 244
 
245 245
 
... ...
@@ -254,7 +254,6 @@ class JSON_RPC(Resource):
254 254
 		request.finish()
255 255
 
256 256
 	def _ebRender(self, result, request, id, finish=True):
257
-		self.eventhandler.log(result, request)
258 257
 
259 258
 		err = None
260 259
 		if not isinstance(result, BaseException):
... ...
@@ -263,6 +262,7 @@ class JSON_RPC(Resource):
263 262
 				err = e
264 263
 		else: err = result
265 264
 		err = self.render_error(err, id)
265
+		self.eventhandler.log(err, request)
266 266
 
267 267
 		request.setHeader("content-type", 'application/json')
268 268
 		request.setResponseCode(200)