Tring to create Plugin for elasticSearch resolve function
<?php
namespace Devall\ElasticsearchPlugin\Plugin\Checkout\Controller;
use Magento\Elasticsearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolver;
use Magento\Framework\Api\Search\SearchCriteriaBuilder;
use Magento\Framework\Data\Collection;
use Magento\Framework\Api\Search\SearchCriteria;
class EmptyProducts
{
/**
* @var SearchCriteriaBuilder
*/
private $builder;
/**
* @var Collection
*/
private $collection;
/**
* @var string
*/
private $searchRequestName;
/**
* @var int
*/
private $size;
/**
* @var array
*/
private $orders;
/**
* @var int
*/
private $currentPage;
/**
* SearchCriteriaResolver constructor.
* @param SearchCriteriaBuilder $builder
* @param Collection $collection
* @param string $searchRequestName
* @param int $currentPage
* @param int $size
* @param array $orders
*/
public function __construct(
SearchCriteriaBuilder $builder,
Collection $collection,
string $searchRequestName,
int $currentPage,
int $size,
?array $orders
) {
$this->builder = $builder;
$this->collection = $collection;
$this->searchRequestName = $searchRequestName;
$this->currentPage = $currentPage;
$this->size = $size;
$this->orders = $orders;
}
public function afterResolve(SearchCriteriaResolver $searchCriteriaResolver){
if ($this->size !== 0) {
$this->builder->setPageSize($this->size);
}
$searchCriteria = $this->builder->create();
$searchCriteria->setRequestName($this->searchRequestName);
$searchCriteria->setSortOrders($this->orders);
$searchCriteria->setCurrentPage($this->currentPage - 1);
return $searchCriteriaResolver;
}
}
It shows an error like
Exception #0 (BadMethodCallException): Missing required argument $searchRequestName of Devall\ElasticsearchPlugin\Plugin\Checkout\Controller\EmptyProducts.
But why I have no idea. Help.