Handle boolean conversion, null checks, and object sanitization in db_object_t and enhance parameter validation in orderBookingRoute

- Added boolean to integer conversion in `db_object_t` during database operations.
- Improved handling of null values, numeric types, and sanitized inputs in `db_object_t`.
- Enhanced safety seal parameter validation in `orderBookingRoute` with support for nullable integers.
- Updated `getTargetItems` to retrieve product names for each item in the order.
This commit is contained in:
Jeppe Bundgaard
2025-11-11 09:50:18 +01:00
parent 72c028c0fd
commit ff7f87475d
2 changed files with 43 additions and 16 deletions
@@ -8,6 +8,7 @@ use objects\departments_o;
use objects\logs_o;
use objects\order_bookings_o;
use objects\order_items_o;
use objects\products_o;
use objects\users_o;
use traits\route_t;
@@ -317,7 +318,13 @@ class orderBookingRoute
$error = 'Invalid safety seal';
if (!$required && !$this->isParametersSet([$parameter])) return null;
self::requireParameters([$parameter]);
self::requireType(self::getParameter($parameter), self::type_int());
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;
}
self::requireMinLength($parameter, 1);
self::requireMaxLength($parameter, 9);
$value = (int)self::getParameter($parameter);
@@ -466,6 +473,10 @@ class orderBookingRoute
self::requireType(self::getParameter($parameter), self::type_bool());
return (bool)self::getParameter($parameter);
}
/**
* @throws Exception
*/
private function getTargetItems(bool $required = true): array|null {
global $response;
$parameter = 'items';
@@ -481,6 +492,7 @@ class orderBookingRoute
foreach ($items as $key => $item) {
self::requireType($item, self::type_array());
self::requireValidItem((array)$item, $key);
$items[$key]['name'] = (new products_o())->select((int)$item['id'])->name->value();
}
return $items;
}