* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Adapter\CartRule\QueryHandler; use CartRule; use PrestaShop\PrestaShop\Core\Domain\CartRule\Query\SearchCartRules; use PrestaShop\PrestaShop\Core\Domain\CartRule\QueryHandler\SearchCartRulesHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\CartRule\QueryResult\FoundCartRule; /** * Searches for cart rules by search phrase using legacy object model */ final class SearchCartRulesHandler implements SearchCartRulesHandlerInterface { /** * @var int */ private $contextLangId; /** * @param int $contextLangId */ public function __construct(int $contextLangId) { $this->contextLangId = $contextLangId; } /** * @param SearchCartRules $query * * @return FoundCartRule[] */ public function handle(SearchCartRules $query): array { $searchPhrase = $query->getSearchPhrase(); $foundCartRules = []; $cartRules = CartRule::getCartsRuleByCode($searchPhrase, $this->contextLangId, true); foreach ($cartRules as $cartRule) { $foundCartRules[] = new FoundCartRule( (int) $cartRule['id_cart_rule'], $cartRule['name'], $cartRule['code'] ); } return $foundCartRules; } }