* @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\Language\CommandHandler; use PrestaShop\PrestaShop\Adapter\File\RobotsTextFileGenerator; use PrestaShop\PrestaShop\Core\Domain\Language\Command\ToggleLanguageStatusCommand; use PrestaShop\PrestaShop\Core\Domain\Language\CommandHandler\ToggleLanguageStatusHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\Language\Exception\LanguageException; /** * Enables/disables language using legacy Language object model * * @internal */ final class ToggleLanguageStatusHandler extends AbstractLanguageHandler implements ToggleLanguageStatusHandlerInterface { /** * @var RobotsTextFileGenerator */ private $robotsTextFileGenerator; /** * @param RobotsTextFileGenerator $robotsTextFileGenerator */ public function __construct(RobotsTextFileGenerator $robotsTextFileGenerator) { $this->robotsTextFileGenerator = $robotsTextFileGenerator; } /** * {@inheritdoc} */ public function handle(ToggleLanguageStatusCommand $command) { $language = $this->getLegacyLanguageObject($command->getLanguageId()); $this->assertLanguageIsNotDefault($language, $command); $language->active = $command->getStatus(); if (false === $language->update()) { throw new LanguageException(sprintf('Failed to toggle language "%s" to status %s', $language->id, var_export($command->getStatus(), true))); } $this->robotsTextFileGenerator->generateFile(); } }