Comply to the JSON-RPC specification

issue5782
review28651002
This commit is contained in:
Cédric Krier committed 2016-09-27 11:57:55 +02:00
1 parent 9900f149f7
commit 430058b891
3 files changed
+19 -9

No files matched your search

+13 -8
View File
@@ -18,6 +18,7 @@
},
'contentType': 'application/json',
'data': JSON.stringify(Sao.rpc.prepareObject({
'id': Sao.rpc.id++,
'method': args.method,
'params': params
})),
@@ -83,12 +84,6 @@
'glyphicon-alert').always(dfd.reject);
return;
}
} else if (data.error[0].startsWith('403')) {
//Try to relog
Sao.Session.renew(session).then(function() {
Sao.rpc(args, session).then(dfd.resolve, dfd.reject);
}, dfd.reject);
return;
} else {
Sao.common.error.run(data.error[0], data.error[1]);
}
@@ -99,8 +94,16 @@
};
var ajax_error = function(query, status_, error) {
Sao.common.error.run(status_, error);
dfd.reject();
if (status_ == 403) {
//Try to relog
Sao.Session.renew(session).then(function() {
Sao.rpc(args, session).then(dfd.resolve, dfd.reject);
}, dfd.reject);
return;
} else {
Sao.common.error.run(status_, error);
dfd.reject();
}
};
ajax_prm.success(ajax_success);
ajax_prm.error(ajax_error);
@@ -108,6 +111,8 @@
return dfd.promise();
};
Sao.rpc.id = 0;
Sao.rpc.convertJSONObject = function(value, index, parent) {
if (value instanceof Array) {
for (var i = 0, length = value.length; i < length; i++) {
+5 -1
View File
@@ -42,6 +42,7 @@
return jQuery.when();
}
var args = {
'id': 0,
'method': 'common.db.logout',
'params': []
};
@@ -214,9 +215,11 @@
}
var dfd = jQuery.Deferred();
var timeoutID = Sao.common.processing.show();
var data = this.func(parameters);
data.id = 0;
var args = {
'contentType': 'application/json',
'data': JSON.stringify(this.func(parameters)),
'data': JSON.stringify(data),
'dataType': 'json',
'url': '/' + this.session.database + '/',
'type': 'post',
@@ -278,6 +281,7 @@
return jQuery.ajax({
'contentType': 'application/json',
'data': JSON.stringify({
'id': 0,
'method': 'common.db.list',
'params': []
}),
+1
View File
@@ -650,6 +650,7 @@
Sao.Session.current_session.context);
var func = function(parameters) {
return {
'id': 0,
'method': 'model.res.user.set_preferences',
'params': [values, parameters, context]
};