MXS-3424: Improve MaxCtrl argument errors
The error messages are now generated at the site where the error is detected. This allows a more accurate error to be reported when invalid parameter values are read.
This commit is contained in:
@ -88,12 +88,13 @@ function parseValue(value) {
|
|||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
function processArgs(key, value, extra) {
|
function updateParams(host, resource, key, value, extra){
|
||||||
var arr = [key, value].concat(extra)
|
var arr = [key, value].concat(extra)
|
||||||
|
|
||||||
if (arr.length % 2 != 0 || arr.findIndex(v => v === 'null' || v === '') != -1) {
|
if (arr.length % 2 != 0) {
|
||||||
// Odd number of arguments or invalid value, return null for error
|
return error('No value defined for parameter `' + extra[extra.length - 1] + '`')
|
||||||
return null
|
} else if (arr.findIndex(v => v === 'null' || v === '') != -1) {
|
||||||
|
return error('Found empty or null value in parameter list: ' + JSON.stringify(arr))
|
||||||
}
|
}
|
||||||
|
|
||||||
var keys = arr.filter((v, i) => i % 2 == 0)
|
var keys = arr.filter((v, i) => i % 2 == 0)
|
||||||
@ -104,21 +105,7 @@ function processArgs(key, value, extra) {
|
|||||||
params[k] = parseValue(values[i])
|
params[k] = parseValue(values[i])
|
||||||
})
|
})
|
||||||
|
|
||||||
return params
|
return updateValue(host, resource, 'data.attributes.parameters', params)
|
||||||
}
|
|
||||||
|
|
||||||
function updateParams(host, resource, key, value, extra){
|
|
||||||
var params = processArgs(key, value, extra)
|
|
||||||
|
|
||||||
if (params) {
|
|
||||||
return updateValue(host, resource, 'data.attributes.parameters', params)
|
|
||||||
} else {
|
|
||||||
if (extra.length % 2 != 0) {
|
|
||||||
return error('No value defined for parameter `' + extra[extra.length - 1] + '`')
|
|
||||||
} else {
|
|
||||||
return error('Invalid value')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.command = 'alter <command>'
|
exports.command = 'alter <command>'
|
||||||
|
Reference in New Issue
Block a user