Testing phase

This commit is contained in:
Paolo
2017-06-28 12:04:41 +02:00
parent be9fc8121e
commit d3a675bf52
2 changed files with 76 additions and 39 deletions
+4 -4
View File
@@ -104,10 +104,10 @@ define('EXIT_DATABASE', 8); // database error
define('EXIT_VALIDATION_UDF', 10); // UDF validation has been failed
define('EXIT_VALIDATION_UDF_MIN_VALUE', 11); // UDF validation has been failed -> MIN VALUE
define('EXIT_VALIDATION_UDF_MAX_VALUE', 12); // UDF validation has been failed -> MAX VALUE
define('EXIT_VALIDATION_UDF_MIN_LENGTH', 11); // UDF validation has been failed -> MIN LENGTH
define('EXIT_VALIDATION_UDF_MAX_LENGTH', 12); // UDF validation has been failed -> MAX LENGTH
define('EXIT_VALIDATION_UDF_REGEX', 13); // UDF validation has been failed -> REGEX
define('EXIT_VALIDATION_UDF_REQUIRED', 14); // UDF validation has been failed -> REQUIRED
define('EXIT_VALIDATION_UDF_MIN_LENGTH', 13); // UDF validation has been failed -> MIN LENGTH
define('EXIT_VALIDATION_UDF_MAX_LENGTH', 14); // UDF validation has been failed -> MAX LENGTH
define('EXIT_VALIDATION_UDF_REGEX', 15); // UDF validation has been failed -> REGEX
define('EXIT_VALIDATION_UDF_REQUIRED', 16); // UDF validation has been failed -> REQUIRED
define('EXIT_AUTO_MIN', 1000); // lowest automatically-assigned error code
define('EXIT_AUTO_MAX', 2000); // highest automatically-assigned error code
+72 -35
View File
@@ -49,10 +49,10 @@ class DB_Model extends FHC_Model
parent::__construct();
// Set properties
$this->dbTable = $dbTable;
$this->pk = $pk;
$this->hasSequence = $hasSequence;
$this->UDFs = array();
$this->dbTable = $dbTable;
$this->hasSequence = $hasSequence;
// Loads DB conns and confs
$this->load->database();
@@ -859,11 +859,11 @@ class DB_Model extends FHC_Model
/**
* Validates UDF value
*/
private function _validateUDFs($udfDescription, $udfValue)
private function _validateUDFs($validation, $udfName, $udfValue)
{
$isValid = true;
$valid = success(true);
$valid = array();
//
$tmpUdfValues = $udfValue;
if (!is_array($udfValue))
{
@@ -871,45 +871,45 @@ class DB_Model extends FHC_Model
}
//
$validation = null;
if (isset($udfDescription->validation))
foreach($tmpUdfValues as $udfValIndx => $udfVal)
{
$validation = $udfDescription->validation;
}
//
if ($validation != null)
{
foreach($tmpUdfValues as $udfValIndx => $udfVal)
//
if (is_numeric($udfVal))
{
//
if (isset($validation->{DB_Model::UDF_MAX_VALUE}) && $udfVal > $validation->{DB_Model::UDF_MAX_VALUE})
{
$valid = error($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, EXIT_VALIDATION_UDF_MAX_VALUE);
break;
$valid[] = error($udfName, EXIT_VALIDATION_UDF_MAX_VALUE);
}
//
if (isset($validation->{DB_Model::UDF_MIN_VALUE}) && $udfVal < $validation->{DB_Model::UDF_MIN_VALUE})
{
$valid = error($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, EXIT_VALIDATION_UDF_MIN_VALUE);
break;
$valid[] = error($udfName, EXIT_VALIDATION_UDF_MIN_VALUE);
}
}
//
if (!is_array($udfVal) && !is_object($udfVal))
{
$strUdfVal = strval($udfVal); //
//
if (isset($validation->{DB_Model::UDF_MAX_LENGTH}) && isset($strUdfVal) && strlen($strUdfVal) > $validation->{DB_Model::UDF_MAX_LENGTH})
{
$valid[] = error($udfName, EXIT_VALIDATION_UDF_MAX_LENGTH);
}
//
if (isset($validation->{DB_Model::UDF_MAX_LENGTH}) && $udfVal > $validation->{DB_Model::UDF_MAX_LENGTH})
if (isset($validation->{DB_Model::UDF_MIN_LENGTH}) && isset($strUdfVal) && strlen($strUdfVal) < $validation->{DB_Model::UDF_MIN_LENGTH})
{
$valid = error($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, EXIT_VALIDATION_UDF_MAX_LENGTH);
break;
$valid[] = error($udfName, EXIT_VALIDATION_UDF_MIN_LENGTH);
}
//
if (isset($validation->{DB_Model::UDF_MIN_LENGTH}) && $udfVal < $validation->{DB_Model::UDF_MIN_LENGTH})
{
$valid = error($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, EXIT_VALIDATION_UDF_MIN_LENGTH);
break;
}
}
//
if (is_string($udfVal))
{
//
if (isset($validation->{DB_Model::UDF_REGEX}) && is_array($validation->{DB_Model::UDF_REGEX}))
{
@@ -919,8 +919,7 @@ class DB_Model extends FHC_Model
{
if (preg_match($regex->expression, $udfVal) != 1)
{
$valid = error($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, EXIT_VALIDATION_UDF_REGEX);
break;
$valid[] = error($udfName, EXIT_VALIDATION_UDF_REGEX);
}
}
}
@@ -928,6 +927,12 @@ class DB_Model extends FHC_Model
}
}
//
if (count($valid) == 0)
{
$valid = success(true);
}
return $valid;
}
@@ -952,23 +957,50 @@ class DB_Model extends FHC_Model
$udfsDecoded = json_decode($udfs->retval[0]->jsons);
$requiredArray = array(); //
//
for($i = 0; $i < count($udfsDecoded); $i++)
{
$udfDescription = $udfsDecoded[$i];
$udfDescription = $udfsDecoded[$i]; //
if(isset($udfDescription->validation)
&& isset($udfDescription->validation->required)
&& $udfDescription->validation->required === true)
{
$requiredArray[$udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}] = error($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, EXIT_VALIDATION_UDF_REQUIRED);
}
//
foreach($this->UDFs as $key => $val)
{
//
if ($udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME} == $key)
{
// Validation of UDF parameter value
// $validate = $this->_validateUDFs($udfDescription, $val);
// Validation of UDF parameter value, if validation rules are present
if (isset($udfDescription->validation))
{
$validate = $this->_validateUDFs(
$udfDescription->validation, //
$udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}, //
$val //
);
if (isset($udfDescription->validation->required) && $udfDescription->validation->required === true)
{
if (isset($requiredArray[$udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}]))
{
unset($requiredArray[$udfDescription->{DB_Model::UDF_ATTRIBUTE_NAME}]);
}
}
}
// If validation is ok copy the value
if (isSuccess($validate))
{
$jsonb[$key] = $val;
}
else // otherwise stop the elaboration
else //
{
$notValidUDFsArray[] = $validate;
}
@@ -976,6 +1008,11 @@ class DB_Model extends FHC_Model
}
}
foreach($requiredArray as $key => $val)
{
$notValidUDFsArray[] = array($val);
}
// If validation was ok
if (count($notValidUDFsArray) == 0)
{