* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShopBundle\Api\StateProvider; use ApiPlatform\Metadata\Operation; use ApiPlatform\State\ProviderInterface; use PrestaShop\PrestaShop\Core\CommandBus\CommandBusInterface; use PrestaShop\PrestaShop\Core\Domain\Hook\Query\GetHookStatus; use PrestaShopBundle\Api\Resource\HookStatus; /** * Provide a HookStatus DTO when request the api about hook status * * @experimental */ final class HookStatusProvider implements ProviderInterface { private $queryBus; public function __construct(CommandBusInterface $queryBus) { $this->queryBus = $queryBus; } /** * {@inheritDoc} */ public function provide(Operation $operation, array $uriVariables = [], array $context = []): HookStatus { /** @var bool $hookStatus */ $hookStatus = $this->queryBus->handle(new GetHookStatus($uriVariables['id'])); $hookStatusResource = new HookStatus(); $hookStatusResource->setId($uriVariables['id']); $hookStatusResource->setActive($hookStatus); return $hookStatusResource; } }