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:
Markus Mäkelä
2021-03-02 09:01:12 +02:00
parent 1c6b7160f3
commit 88baaeffd3

View File

@ -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>'