* @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\Category\CommandHandler; use Category; use PrestaShop\PrestaShop\Core\Domain\Category\Command\SetCategoryIsEnabledCommand; use PrestaShop\PrestaShop\Core\Domain\Category\CommandHandler\SetCategoryIsEnabledHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\Category\Exception\CannotUpdateCategoryStatusException; use PrestaShop\PrestaShop\Core\Domain\Category\Exception\CategoryNotFoundException; /** * @internal */ final class SetCategoryIsEnabledHandler implements SetCategoryIsEnabledHandlerInterface { /** * {@inheritdoc} * * @throws CategoryNotFoundException * @throws CannotUpdateCategoryStatusException */ public function handle(SetCategoryIsEnabledCommand $command) { $categoryId = $command->getCategoryId()->getValue(); $entity = new Category($categoryId); if (!$entity->id) { throw new CategoryNotFoundException($command->getCategoryId(), sprintf('Category with id "%s" was not found', $categoryId)); } if (!$entity->toggleStatus()) { throw new CannotUpdateCategoryStatusException(sprintf('Cannot update status for category with id "%s"', $categoryId)); } } }