/** * Валидация данные в запросе добавления нового поста * * @param int $price стоимость * @param string $text текст * @param string $token токен * * @return bool|string true, если валидно, текст сообщения иначе */ function validateParams($price, $text, $token) { if ($price < 1) { return 'Стоимость должна быть больше 0'; } if (mb_strlen($text) == 0) { return 'Текст не должен быть пуст'; } if (mb_strlen($text) > 1024) { return 'Текст не может быть более 1024 символов'; } if (is_null($token)) { return 'Не токена'; } if ($token !== Session\getToken()) { return 'Неверный токен'; } return true; }
/** * Разлогинивание * * @param array &$Controller объект контроллера */ function logoutAction(array &$Controller) { $Request =& getRequest($Controller); if (Request\isPost($Request)) { $logout = Request\getPostParam($Request, 'logout'); $token = Request\getPostParam($Request, 'token'); if (!is_null($logout) && $token === Session\getToken()) { Session\clearActiveUserData(); } } header('Location: /index', true, 303); exit; }
/** * Подгрузка новых заказов, если есть * * @param array &$Controller объект контроллера * * @return array сериализованный список заказов */ function cmdCheckNew(array &$Controller) { $Request =& getRequest($Controller); $token = Request\getPostParam($Request, 'token'); $fromId = (int) Request\getPostParam($Request, 'fromId'); if ($fromId < 1 || is_null($token) || $token !== Session\getToken()) { return ['errorMsg' => 'Неверные данные']; } $OrderRepository =& ServiceManager\get(getServiceManager($Controller), 'OrderRepository'); return array_map(function (array $Order) { return ['id' => Order\getId($Order), 'text' => htmlspecialchars(Order\getText($Order), ENT_COMPAT | ENT_QUOTES), 'price' => Order\getPrice($Order)]; }, OrderRepository\fetchWithIdOffset($OrderRepository, $fromId)); }