[ParameterValidator] Refactor 'validation' into 'ParameterValidator'

Adds a new class 'ParameterValidator' to replace the functions from
'validator.php', separating private functions from 'validateData' to
class private functions in the process.

Instead of echoing error messages, adds messages to a private variable,
accessible via 'getInvalidParameters'.

BridgeAbstract now adds invalid parameter names to the error message.
This commit is contained in:
logmanoriginal 2018-09-22 16:42:04 +02:00
parent e3a5a6a170
commit f853ffc07c
4 changed files with 136 additions and 98 deletions

View file

@ -195,8 +195,18 @@ abstract class BridgeAbstract implements BridgeInterface {
return;
}
if(!validateData($inputs, static::PARAMETERS)) {
returnClientError('Invalid parameters value(s)');
$validator = new ParameterValidator();
if(!$validator->validateData($inputs, static::PARAMETERS)) {
$parameters = array_map(
function($i){ return $i['name']; }, // Just display parameter names
$validator->getInvalidParameters()
);
returnClientError(
'Invalid parameters value(s): '
. implode(', ', $parameters)
);
}
// Guess the paramter context from input data