yep, to support keyword arguments. It was an oversight of jsonrpc 1 vs 2 
specs. 

trunk has it fixed, along with "specific" 1 vs 2 support (i.e. jsonrpc and 
jsonrpc2 decorators)

On Friday, March 1, 2013 8:00:30 PM UTC+1, Phyo Arkar wrote:
>
> Any reason there for ** ?
>
> On Sat, Mar 2, 2013 at 12:40 AM, Phyo Arkar <[email protected]<javascript:>
> > wrote:
>
>> The bug is at:
>>
>> gluon/tools.py
>>
>>             s = methods[method](**params)
>>
>> it should be 
>>             s = methods[method](*params)
>>
>>
>> On Sat, Mar 2, 2013 at 12:16 AM, Phyo Arkar 
>> <[email protected]<javascript:>
>> > wrote:
>>
>>> We got a problem when we upgrade to 2.3.2 in JSONRPC called via qooxdoo.
>>>
>>> "TypeError: testlogin() argument after ** must be a mapping, not list", 
>>> "JSONRPCError"
>>>
>>>
>>> Which worked fine in 2.2.1
>>>
>>>
>>> Below is code for controller :
>>>
>>>
>>>
>>>
>>>
>>> @service.jsonrpc
>>> def testlogin(username, password):
>>>
>>>     status = 0
>>>     authed = auth.login_bare(str(username), str(password))
>>>
>>>
>>>
>>>
>>>     if authed:
>>>         status = 1
>>>     return dict(status=status)
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> JSONRPC request code is :
>>>
>>> jsonrpc_login.callAsync(handler_login, 
>>>
>>>
>>>
>>>                        "testlogin",
>>>                        textbox_username.getValue(),
>>>                        textbox_password.getValue());
>>>
>>>
>>>
>>>
>>>
>>>
>>> Full JS Code (qooxdoo) :
>>>
>>> qx.Class.define("logintest.login", {
>>>     extend: qx.ui.container.Composite,
>>>     
>>>
>>>
>>>
>>>     construct : function() {
>>>         this.base(arguments);
>>>         this.setLayout(new qx.ui.layout.VBox());
>>>         var center_hbox = new qx.ui.container.Composite(new 
>>> qx.ui.layout.HBox());
>>>
>>>
>>>
>>>         
>>>         var loginform = new qx.ui.form.Form();
>>>         var textbox_username = new qx.ui.form.TextField();
>>>         var textbox_password = new qx.ui.form.PasswordField();
>>>
>>>
>>>
>>>
>>>         var button_login = new qx.ui.form.Button("Login", 
>>> "logintest/test.png");
>>>
>>>         loginform.add(textbox_username, "User Name");
>>>         loginform.add(textbox_password, "Password");
>>>
>>>
>>>
>>>         loginform.addButton(button_login);
>>>
>>>         var jsonrpc_login = new 
>>> qx.io.remote.Rpc("/auth_test/default/call/jsonrpc");
>>>         
>>>         center_hbox.add(new qx.ui.core.Spacer(), {flex: 1});
>>>
>>>
>>>
>>>         center_hbox.add(new qx.ui.form.renderer.Single(loginform));
>>>         center_hbox.add(new qx.ui.core.Spacer(), {flex: 1});
>>>         
>>>         this.add(new qx.ui.core.Spacer(), {flex: 1});
>>>
>>>
>>>
>>>         this.add(center_hbox);
>>>         this.add(new qx.ui.core.Spacer(), {flex: 1});
>>>         
>>>         var handler_login = function(result, ex, id)
>>>         {
>>>             if (ex == null)
>>>
>>>
>>>
>>>             {
>>>                 alert(result.status);
>>>             } else {
>>>                 console.log("=Err=");
>>>                 console.log(ex);
>>>             }
>>>
>>>
>>>
>>>         };
>>>         
>>>         button_login.addListener("execute", function(e) {
>>>            jsonrpc_login.callAsync(handler_login, 
>>>                        "testlogin",
>>>
>>>
>>>
>>>                        textbox_username.getValue(),
>>>                        textbox_password.getValue());
>>>         });
>>>     },
>>>
>>>
>>>
>>>     
>>>     members : {
>>>         
>>>     }
>>> });
>>>
>>>
>>>
>>>
>>>
>>>  
>>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to