dblayer : return the verify result with priority
git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@1834 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
60
dblayer.php
60
dblayer.php
@@ -198,7 +198,8 @@ class dblayer extends PDO
|
|||||||
/** Verify if the provided datas can be inserted/updated in the database.
|
/** Verify if the provided datas can be inserted/updated in the database.
|
||||||
@param $datas An array containing the datas to verify with keys
|
@param $datas An array containing the datas to verify with keys
|
||||||
@param $updatekey the key to update
|
@param $updatekey the key to update
|
||||||
@return an array with the errors */
|
@return an array with the errors in array($key=>array($priority,$message))
|
||||||
|
*/
|
||||||
public function verify ($datas, $updatekey=false)
|
public function verify ($datas, $updatekey=false)
|
||||||
{
|
{
|
||||||
// TODO : See if the edited key is needed in UPDATE mode
|
// TODO : See if the edited key is needed in UPDATE mode
|
||||||
@@ -210,16 +211,16 @@ class dblayer extends PDO
|
|||||||
// Don't check if there is an update : the database is already filled
|
// Don't check if there is an update : the database is already filled
|
||||||
if (in_array ("not null", $params) && !array_key_exists ($key, $datas))
|
if (in_array ("not null", $params) && !array_key_exists ($key, $datas))
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (dgettext("domframework",
|
$errors[$key] = array ("error", sprintf (dgettext("domframework",
|
||||||
"Mandatory field '%s' not provided"),
|
"Mandatory field '%s' not provided"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (in_array ("not null", $params) && $datas[$key] === "")
|
if (in_array ("not null", $params) && $datas[$key] === "")
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (dgettext("domframework",
|
$errors[$key] = array ("error", sprintf (dgettext("domframework",
|
||||||
"Mandatory field '%s' is empty"),
|
"Mandatory field '%s' is empty"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,7 +233,8 @@ class dblayer extends PDO
|
|||||||
$verify = $this->verifyOne ($key, $datas[$key]);
|
$verify = $this->verifyOne ($key, $datas[$key]);
|
||||||
if (is_array ($verify) && count ($verify))
|
if (is_array ($verify) && count ($verify))
|
||||||
{
|
{
|
||||||
$errors[$key] = $verify[0]." ".$verify[1]." in ".$key;
|
$errors[$key] = array ($verify[0], $verify[1]." ".
|
||||||
|
dgettext("domframework","in")." ".$key);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Check for type inconsistencies if the value is provided
|
// Check for type inconsistencies if the value is provided
|
||||||
@@ -240,10 +242,10 @@ class dblayer extends PDO
|
|||||||
{
|
{
|
||||||
if (strspn ($datas[$key], "0123456789") !== strlen ($datas[$key]))
|
if (strspn ($datas[$key], "0123456789") !== strlen ($datas[$key]))
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (
|
$errors[$key] = array ("error", sprintf (
|
||||||
dgettext("domframework",
|
dgettext("domframework",
|
||||||
"Errors in consistency : '%s' is not an integer"),
|
"Errors in consistency : '%s' is not an integer"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -251,18 +253,18 @@ class dblayer extends PDO
|
|||||||
{
|
{
|
||||||
if (! isset ($params[1]))
|
if (! isset ($params[1]))
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (
|
$errors[$key] = array ("error", sprintf (
|
||||||
dgettext("domframework",
|
dgettext("domframework",
|
||||||
"The length of varchar field '%s' is not provided"),
|
"The length of varchar field '%s' is not provided"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (strlen ($datas[$key]) > $params[1])
|
if (strlen ($datas[$key]) > $params[1])
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (
|
$errors[$key] = array ("error", sprintf (
|
||||||
dgettext("domframework",
|
dgettext("domframework",
|
||||||
"Errors in consistency : '%s' data is too long"),
|
"Errors in consistency : '%s' data is too long"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,10 +274,10 @@ class dblayer extends PDO
|
|||||||
$d = DateTime::createFromFormat("Y-m-d H:i:s", $datas[$key]);
|
$d = DateTime::createFromFormat("Y-m-d H:i:s", $datas[$key]);
|
||||||
if (!$d || $d->format("Y-m-d H:i:s") !== $datas[$key])
|
if (!$d || $d->format("Y-m-d H:i:s") !== $datas[$key])
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (
|
$errors[$key] = array ("error", sprintf (
|
||||||
dgettext("domframework",
|
dgettext("domframework",
|
||||||
"Incorrect datetime provided for field '%s'"),
|
"Incorrect datetime provided for field '%s'"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -285,17 +287,17 @@ class dblayer extends PDO
|
|||||||
$d = DateTime::createFromFormat("Y-m-d", $datas[$key]);
|
$d = DateTime::createFromFormat("Y-m-d", $datas[$key]);
|
||||||
if (!$d || $d->format("Y-m-d") !== $datas[$key])
|
if (!$d || $d->format("Y-m-d") !== $datas[$key])
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (
|
$errors[$key] = array ("error", sprintf (
|
||||||
dgettext("domframework",
|
dgettext("domframework",
|
||||||
"Incorrect date provided for field '%s'"),
|
"Incorrect date provided for field '%s'"),
|
||||||
$key);
|
$key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($datas[$key] !== "")
|
elseif ($datas[$key] !== "")
|
||||||
{
|
{
|
||||||
$errors[$key] = sprintf (dgettext("domframework",
|
$errors[$key] = array ("error", sprintf (dgettext("domframework",
|
||||||
"Unknown field type for '%s'"), $key);
|
"Unknown field type for '%s'"), $key));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -304,6 +306,9 @@ class dblayer extends PDO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (count ($errors) !== 0)
|
||||||
|
return $errors;
|
||||||
|
|
||||||
// Check for inconsistency
|
// Check for inconsistency
|
||||||
$verify = $this->verifyAll ($datas);
|
$verify = $this->verifyAll ($datas);
|
||||||
if (count ($verify))
|
if (count ($verify))
|
||||||
@@ -322,7 +327,8 @@ class dblayer extends PDO
|
|||||||
// 1. Read the actual state
|
// 1. Read the actual state
|
||||||
$before = $this->read (array (array ($this->primary, $updatekey)));
|
$before = $this->read (array (array ($this->primary, $updatekey)));
|
||||||
if (count ($before) === 0)
|
if (count ($before) === 0)
|
||||||
return array (dgettext("domframework", "Entry to modify unavailable"));
|
return array ("error", dgettext("domframework",
|
||||||
|
"Entry to modify unavailable"));
|
||||||
$before = reset ($before);
|
$before = reset ($before);
|
||||||
// 2. Map the proposal entries into the before state
|
// 2. Map the proposal entries into the before state
|
||||||
$after = $before;
|
$after = $before;
|
||||||
@@ -354,9 +360,9 @@ class dblayer extends PDO
|
|||||||
$rc = $this->read ($select, array ($this->primary));
|
$rc = $this->read ($select, array ($this->primary));
|
||||||
if (count ($rc) > 0)
|
if (count ($rc) > 0)
|
||||||
{
|
{
|
||||||
$errors[] = sprintf (dgettext("domframework",
|
$errors[] = array ("error", sprintf (dgettext("domframework",
|
||||||
"The provided values for columns '%s' already exists"),
|
"The provided values for columns '%s' already exists"),
|
||||||
implode (",", $columns));
|
implode (",", $columns)));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -376,9 +382,9 @@ class dblayer extends PDO
|
|||||||
array ($this->primary));
|
array ($this->primary));
|
||||||
if (count ($rc) > 0)
|
if (count ($rc) > 0)
|
||||||
{
|
{
|
||||||
$errors[] = sprintf (dgettext("domframework",
|
$errors[] = array ("error", sprintf (dgettext("domframework",
|
||||||
"The column '%s' with this value already exists"),
|
"The column '%s' with this value already exists"),
|
||||||
$columns);
|
$columns));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -389,9 +395,9 @@ class dblayer extends PDO
|
|||||||
{
|
{
|
||||||
if (! isset ($datas[$foreign]))
|
if (! isset ($datas[$foreign]))
|
||||||
{
|
{
|
||||||
$errors[] = sprintf (dgettext("domframework",
|
$errors[] = array ("error", sprintf (dgettext("domframework",
|
||||||
"The forign column '%s' is not provided"),
|
"The forign column '%s' is not provided"),
|
||||||
$foreign);
|
$foreign));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$table = $data[0];
|
$table = $data[0];
|
||||||
@@ -423,9 +429,9 @@ class dblayer extends PDO
|
|||||||
$res[] = $d;
|
$res[] = $d;
|
||||||
if (count ($res) === 0)
|
if (count ($res) === 0)
|
||||||
{
|
{
|
||||||
$errors[] = sprintf (dgettext("domframework",
|
$errors[] = array ("error", sprintf (dgettext("domframework",
|
||||||
"The foreign key '%s' doesn't exists"),
|
"The foreign key '%s' doesn't exists"),
|
||||||
$column);
|
$column));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user