* @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\CMS\Page\CommandHandler; use PrestaShop\PrestaShop\Core\Domain\CmsPage\Command\ToggleCmsPageStatusCommand; use PrestaShop\PrestaShop\Core\Domain\CmsPage\CommandHandler\ToggleCmsPageStatusHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\CmsPage\Exception\CannotToggleCmsPageException; use PrestaShop\PrestaShop\Core\Domain\CmsPage\Exception\CmsPageException; use PrestaShopException; /** * Changes the status of cms page. */ final class ToggleCmsPageStatusHandler extends AbstractCmsPageHandler implements ToggleCmsPageStatusHandlerInterface { /** * {@inheritdoc} * * @throws CmsPageException */ public function handle(ToggleCmsPageStatusCommand $command) { $cms = $this->getCmsPageIfExistsById($command->getCmsPageId()->getValue()); try { if (false === $cms->toggleStatus()) { throw new CannotToggleCmsPageException(sprintf('Failed to toggle cms page with id %s status', $command->getCmsPageId()->getValue())); } } catch (PrestaShopException $exception) { throw new CmsPageException(sprintf('An unexpected error occurred when toggling cms page with id %s status', $command->getCmsPageId()->getValue())); } } }