* @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\DeleteCmsPageCommand; use PrestaShop\PrestaShop\Core\Domain\CmsPage\CommandHandler\DeleteCmsPageHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\CmsPage\Exception\CannotDeleteCmsPageException; use PrestaShop\PrestaShop\Core\Domain\CmsPage\Exception\CmsPageException; use PrestaShopException; /** * Deletes given cms page. */ final class DeleteCmsPageHandler extends AbstractCmsPageHandler implements DeleteCmsPageHandlerInterface { /** * {@inheritdoc} * * @throws CmsPageException */ public function handle(DeleteCmsPageCommand $command) { $cms = $this->getCmsPageIfExistsById($command->getCmsPageId()->getValue()); try { if (false === $cms->delete()) { throw new CannotDeleteCmsPageException(sprintf('An error occurred when deleting cms page with id %s', $command->getCmsPageId()->getValue()), CannotDeleteCmsPageException::FAILED_DELETE); } } catch (PrestaShopException $e) { throw new CmsPageException(sprintf('An unexpected error occurred when deleting cms page with id %s', $command->getCmsPageId()->getValue()), 0, $e); } } }