Handle empty inputs in Redis and database operations, improve safety seal validation, and enhance related tests
- Return empty arrays for empty inputs in Redis `mget`, `db_object_t`, and `users_o` operations. - Refactor safety seal validation logic to handle numeric strings and improve clarity. - Add unit and API tests to verify handling of empty inputs and numeric safety seal strings.
This commit is contained in:
@@ -369,7 +369,7 @@ class orderBookingRoute
|
||||
* Parameters
|
||||
*/
|
||||
$object = self::getTargetObject();
|
||||
$safetySeal = self::getSafetySeal(false); // Int | Null
|
||||
$safetySeal = self::getSafetySeal(false);
|
||||
/**
|
||||
* Authentication
|
||||
*/
|
||||
@@ -505,16 +505,25 @@ class orderBookingRoute
|
||||
$error = 'Invalid safety seal';
|
||||
if (!$required && !$this->isParametersSet([$parameter])) return null;
|
||||
self::requireParameters([$parameter]);
|
||||
if ($required) {
|
||||
self::requireType(self::getParameter($parameter), self::type_int());
|
||||
} else {
|
||||
self::requireTypeIn(self::getParameter($parameter), [self::type_int(), self::type_null()]);
|
||||
// Check if the value is null
|
||||
if ($this->getParameter($parameter) === null) return null;
|
||||
$rawValue = self::getParameter($parameter);
|
||||
if (!$required && $rawValue === null) return null;
|
||||
if (is_string($rawValue)) {
|
||||
$rawValue = trim($rawValue);
|
||||
if (!$required && $rawValue === '') return null;
|
||||
if (!ctype_digit($rawValue)) $response->error($error, 400);
|
||||
} elseif (!is_int($rawValue)) {
|
||||
if ($required) {
|
||||
self::requireType($rawValue, self::type_int());
|
||||
} else {
|
||||
self::requireTypeIn($rawValue, [self::type_int(), self::type_null()]);
|
||||
}
|
||||
}
|
||||
self::requireMinLength($parameter, 1);
|
||||
self::requireMaxLength($parameter, 9);
|
||||
$value = (int)self::getParameter($parameter);
|
||||
if ($required || $rawValue !== null) {
|
||||
$valueLength = strlen((string)$rawValue);
|
||||
if ($valueLength < 1) $response->error('Parameter ' . $parameter . ' must be at least 1 characters long', 400);
|
||||
if ($valueLength > 9) $response->error('Parameter ' . $parameter . ' must be at most 9 characters long', 400);
|
||||
}
|
||||
$value = (int)$rawValue;
|
||||
self::requireMinValue($value, 1);
|
||||
self::requireMaxValue($value, 999999999);
|
||||
return $value;
|
||||
|
||||
Reference in New Issue
Block a user