luci-base: rpc.js: add ability to reject nonzero ubus statuses
Add a new declare option `reject` which makes the generated RPC call function reject with an error in case the remote ubus call returned a non-zero status. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
465891ff02
commit
bd713f870a
1 changed files with 10 additions and 1 deletions
|
@ -93,6 +93,10 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
|
||||||
ret = msg.result;
|
ret = msg.result;
|
||||||
}
|
}
|
||||||
else if (Array.isArray(msg.result)) {
|
else if (Array.isArray(msg.result)) {
|
||||||
|
if (req.raise && msg.result[0] !== 0)
|
||||||
|
L.raise('RPCError', 'RPC call to %s/%s failed with ubus code %d: %s',
|
||||||
|
req.object, req.method, msg.result[0], this.getStatusText(msg.result[0]));
|
||||||
|
|
||||||
ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
|
ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,6 +232,10 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
|
||||||
* Specfies an optional filter function which is invoked to transform the
|
* Specfies an optional filter function which is invoked to transform the
|
||||||
* received reply data before it is returned to the caller.
|
* received reply data before it is returned to the caller.
|
||||||
*
|
*
|
||||||
|
* @property {boolean} [reject=false]
|
||||||
|
* If set to `true`, non-zero ubus call status codes are treated as fatal
|
||||||
|
* error and lead to the rejection of the call promise. The default
|
||||||
|
* behaviour is to resolve with the call return code value instead.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -316,7 +324,8 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
|
||||||
params: params,
|
params: params,
|
||||||
priv: priv,
|
priv: priv,
|
||||||
object: options.object,
|
object: options.object,
|
||||||
method: options.method
|
method: options.method,
|
||||||
|
raise: options.reject
|
||||||
};
|
};
|
||||||
|
|
||||||
/* build message object */
|
/* build message object */
|
||||||
|
|
Loading…
Reference in a new issue