File tree Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -167,14 +167,27 @@ def wait(self):
167
167
return dry .aio .blockify (self ._wait )()
168
168
169
169
def on (self , * args ):
170
+ # deserialize job on event parameters before passing them to user defined callback
171
+ def cb_deserialize_wrapper (callback ):
172
+ def new_cb (* inner_args ):
173
+ new_args = []
174
+ for arg in inner_args :
175
+ if isinstance (arg , dict ):
176
+ for key in arg :
177
+ arg [key ] = deserialize (arg [key ], self .serializers )
178
+ new_args .append (deserialize (arg , self .serializers ))
179
+ return callback (* new_args )
180
+ return new_cb
181
+
170
182
if len (args ) > 1 and callable (args [1 ]):
171
183
event_name = args [0 ]
172
- event_cb = args [1 ]
184
+ event_cb = cb_deserialize_wrapper ( args [1 ])
173
185
self .js_ref .on (event_name , event_cb )
174
186
else :
175
187
event_name = args [0 ]
176
188
def decorator (fn ):
177
- self .js_ref .on (event_name , fn )
189
+ event_cb = cb_deserialize_wrapper (fn )
190
+ self .js_ref .on (event_name , event_cb )
178
191
return decorator
179
192
return Job
180
193
You can’t perform that action at this time.
0 commit comments