* @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\Core\Form\IdentifiableObject\DataHandler; use PrestaShop\PrestaShop\Core\CommandBus\CommandBusInterface; use PrestaShop\PrestaShop\Core\Domain\Country\Command\AddCountryCommand; use PrestaShop\PrestaShop\Core\Domain\Country\ValueObject\CountryId; use PrestaShopBundle\Exception\NotImplementedException; /** * Handles submitted zone form data. */ class CountryFormDataHandler implements FormDataHandlerInterface { /** * @var CommandBusInterface */ protected $commandBus; /** * @param CommandBusInterface $commandBus */ public function __construct(CommandBusInterface $commandBus) { $this->commandBus = $commandBus; } /** * Create object from form data. * * @param array $data * * @return int */ public function create(array $data): int { $addCountryCommand = new AddCountryCommand( $data['name'], (string) $data['iso_code'], (int) $data['call_prefix'], (int) $data['default_currency'], (int) $data['zone'], $data['need_zip_code'], $data['zip_code_format'], (string) $data['address_format'], $data['is_enabled'], $data['contains_states'], $data['need_identification_number'], $data['display_tax_label'], $data['shop_association'] ?? [] ); /** @var CountryId $countryId */ $countryId = $this->commandBus->handle($addCountryCommand); return $countryId->getValue(); } public function update($id, array $data) { // TODO: Implement update() method in edit PR. throw new NotImplementedException(); } }