* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Search; use PrestaShopBundle\Entity\Repository\AdminFilterRepository; use Symfony\Component\HttpFoundation\Request; /** * Retrieve filters parameters if any from the User request. * * @deprecated Use FiltersBuilderInterface instead */ final class SearchParameters implements SearchParametersInterface { /** * @var AdminFilterRepository */ private $adminFilterRepository; public function __construct(AdminFilterRepository $adminFilterRepository) { $this->adminFilterRepository = $adminFilterRepository; } /** * {@inheritdoc} */ public function getFiltersFromRequest(Request $request, $filterClass) { $queryParams = $request->query->all(); $requestParams = $request->request->all(); $parameters = []; foreach (self::FILTER_TYPES as $type) { if (isset($queryParams[$type])) { $parameters[$type] = $queryParams[$type]; } elseif (isset($requestParams[$type])) { $parameters[$type] = $requestParams[$type]; } } return new $filterClass($parameters); } /** * {@inheritdoc} */ public function getFiltersFromRepository($employeeId, $shopId, $controller, $action, $filterClass) { $adminFilter = $this->adminFilterRepository->findByEmployeeAndRouteParams( $employeeId, $shopId, $controller, $action ); $parameters = null !== $adminFilter ? json_decode($adminFilter->getFilter(), true) : []; return new $filterClass($parameters); } }