reflection = $reflection; } public function process(ServerRequestInterface $request, RequestHandlerInterface $next): ResponseInterface { $operation = RequestUtils::getOperation($request); if ($operation == 'list') { $params = RequestUtils::getParams($request); $maxPage = (int) $this->getProperty('pages', '100'); if (isset($params['page']) && $params['page'] && $maxPage > 0) { if (strpos($params['page'][0], ',') === false) { $page = $params['page'][0]; } else { list($page, $size) = explode(',', $params['page'][0], 2); } if ($page > $maxPage) { return $this->responder->error(ErrorCode::PAGINATION_FORBIDDEN, ''); } } $maxSize = (int) $this->getProperty('records', '1000'); if (!isset($params['size']) || !$params['size'] && $maxSize > 0) { $params['size'] = array($maxSize); } else { $params['size'] = array(min($params['size'][0], $maxSize)); } $request = RequestUtils::setParams($request, $params); } return $next->handle($request); } }