| Current Path : /home/rtorresani/www/vendor/magento/framework/Webapi/Validator/IOLimit/ |
| Current File : //home/rtorresani/www/vendor/magento/framework/Webapi/Validator/IOLimit/DefaultPageSizeSetter.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Framework\Webapi\Validator\IOLimit;
use Magento\Framework\Api\SearchCriteriaInterface;
/**
* Sets the default page size with the configured input limits
*/
class DefaultPageSizeSetter
{
/**
* @var IOLimitConfigProvider
*/
private $validationConfigProvider;
/**
* @param IOLimitConfigProvider $validationConfigProvider
*/
public function __construct(IOLimitConfigProvider $validationConfigProvider)
{
$this->validationConfigProvider = $validationConfigProvider;
}
/**
* Set the default page size if needed using the optional parameter as a fallback value
*
* @param SearchCriteriaInterface $searchCriteria The search criteria to manipulate
* @param int|null $defaultPageSizeFallback The fallback value if limiting is enabled but a limit has not been set
*/
public function processSearchCriteria(
SearchCriteriaInterface $searchCriteria,
int $defaultPageSizeFallback = null
): void {
if ($searchCriteria->getPageSize() === null
&& $this->validationConfigProvider->isInputLimitingEnabled()
) {
$searchCriteria->setPageSize(
$this->validationConfigProvider->getDefaultPageSize() ?? $defaultPageSizeFallback
);
}
}
}