* @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\Address\CommandHandler; use CustomerAddress; use PrestaShop\PrestaShop\Core\Domain\Address\Command\SetRequiredFieldsForAddressCommand; use PrestaShop\PrestaShop\Core\Domain\Address\CommandHandler\SetRequiredFieldsForAddressHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\Address\Exception\CannotSetRequiredFieldsForAddressException; use PrestaShopDatabaseException; /** * Handles command which sets required fields for address. * * @internal */ final class SetRequiredFieldsForAddressHandler implements SetRequiredFieldsForAddressHandlerInterface { /** * {@inheritdoc} * * @throws CannotSetRequiredFieldsForAddressException */ public function handle(SetRequiredFieldsForAddressCommand $command) { $address = new CustomerAddress(); try { if ($address->addFieldsRequiredDatabase($command->getRequiredFields())) { return; } } catch (PrestaShopDatabaseException $e) { } throw new CannotSetRequiredFieldsForAddressException(sprintf('Cannot set "%s" required fields for customer', implode(',', $command->getRequiredFields()))); } }