From e0d581a84a21486c176f127ffe6d3ad565389f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de> Date: Wed, 20 Jul 2022 14:53:51 +0200 Subject: [PATCH] fix: Menu REST API fixes --- src/QUI/Menu/Rest/Provider.php | 46 +++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/src/QUI/Menu/Rest/Provider.php b/src/QUI/Menu/Rest/Provider.php index cb146e9..b322cb0 100644 --- a/src/QUI/Menu/Rest/Provider.php +++ b/src/QUI/Menu/Rest/Provider.php @@ -71,7 +71,13 @@ public function create(RequestInterface $Request, ResponseInterface $Response): return Handler::getGenericErrorResponse('Field "'.$field.'" is missing.'); } - $menu[$field] = Orthos::clear($params[$field]); + if (\is_array($params[$field])) { + $value = Orthos::clearArray($params[$field]); + } else { + $value = Orthos::clear($params[$field]); + } + + $menu[$field] = $value; } $optionalFields = [ @@ -85,10 +91,18 @@ public function create(RequestInterface $Request, ResponseInterface $Response): continue; } - if (\is_array($params[$field])) { - $value = Orthos::clearArray($params[$field]); - } else { - $value = Orthos::clear($params[$field]); + $value = $params[$field]; + + switch ($field) { + case 'data': + break; + + default: + if (\is_array($params[$field])) { + $value = Orthos::clearArray($params[$field]); + } else { + $value = Orthos::clear($params[$field]); + } } $menu[$field] = $value; @@ -104,13 +118,13 @@ public function create(RequestInterface $Request, ResponseInterface $Response): $menuId = (int)$menu['id']; try { - $menu = MenuHandler::getMenu($menuId); + $Menu = MenuHandler::getMenu($menuId); } catch (\Exception $Exception) { QUI\System\Log::writeDebugException($Exception); - $menu = false; + $Menu = false; } - if ($menu) { + if ($Menu) { throw new QUI\Exception( 'Menu with specific id #'.$menuId.' cannot be created, since a menu with this id already' .' exists.' @@ -230,10 +244,18 @@ public function update(RequestInterface $Request, ResponseInterface $Response): continue; } - if (\is_array($params[$field])) { - $value = Orthos::clearArray($params[$field]); - } else { - $value = Orthos::clear($params[$field]); + $value = $params[$field]; + + switch ($field) { + case 'data': + break; + + default: + if (\is_array($params[$field])) { + $value = Orthos::clearArray($params[$field]); + } else { + $value = Orthos::clear($params[$field]); + } } $menu[$field] = $value; -- GitLab