* @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 PrestaShop\PrestaShop\Adapter\Title\CommandHandler; use Gender; use PrestaShop\PrestaShop\Core\Domain\Title\Command\DeleteTitleCommand; use PrestaShop\PrestaShop\Core\Domain\Title\CommandHandler\DeleteTitleHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\Title\Exception\DeleteTitleException; use PrestaShop\PrestaShop\Core\Domain\Title\Exception\TitleNotFoundException; /** * Handles command that delete title */ class DeleteTitleHandler implements DeleteTitleHandlerInterface { /** * {@inheritdoc} */ public function handle(DeleteTitleCommand $command): void { $title = new Gender($command->getTitleId()->getValue()); if (0 >= $title->id) { throw new TitleNotFoundException(sprintf('Unable to find title with id "%d" for deletion', $command->getTitleId()->getValue())); } if (!$title->delete()) { throw DeleteTitleException::createDeleteFailure($command->getTitleId()); } } }