/** * {@inheritdoc} * * Converts flat array to standard structured array: * * Before: * [ * 'username' => 'julia', * 'email' => '*****@*****.**', * 'password' => 'julia', * 'first_name' => 'Julia', * 'last_name' => 'Stark', * 'catalog_locale' => 'en_US', * 'user_locale' => 'en_US', * 'catalog_scope' => 'ecommerce', * 'default_tree' => 'men_2013', * 'roles' => 'ROLE_USER', * 'groups' => 'Redactor', * 'enabled' => '1', * ] * * After: * [ * 'username' => 'julia', * 'email' => '*****@*****.**', * 'password' => 'julia', * 'first_name' => 'Julia', * 'last_name' => 'Stark', * 'catalog_locale' => 'en_US', * 'user_locale' => 'en_US', * 'catalog_scope' => 'ecommerce', * 'default_tree' => 'men_2013', * 'roles' => ['ROLE_USER'], * 'groups' => ['Redactor'], * 'enabled' => true, * ] */ public function convert(array $item, array $options = []) { $this->fieldsChecker->checkFieldsPresence($item, ['username', 'email', 'password', 'enabled', 'roles', 'first_name', 'last_name', 'groups']); $this->fieldsChecker->checkFieldsFilling($item, ['username', 'email', 'password', 'enabled', 'roles', 'first_name', 'last_name']); $convertedItem = []; foreach ($item as $field => $data) { $convertedItem = $this->convertField($convertedItem, $field, $data); } return $convertedItem; }
/** * {@inheritdoc} * * Converts flat csv array to standard structured array: * * Before: * [ * 'code' => 'sizes', * 'sort_order' => 1, * 'attributes' => 'size,main_color', * 'label-en_US' => 'Sizes', * 'label-fr_FR' => 'Tailles' * ] * * After: * [ * 'code' => 'sizes', * 'sort_order' => 1, * 'attributes' => ['size', 'main_color'], * 'label' => [ * 'en_US' => 'Sizes', * 'fr_FR' => 'Tailles' * ] * ] */ public function convert(array $item, array $options = []) { $this->fieldChecker->checkFieldsPresence($item, ['code']); $this->fieldChecker->checkFieldsFilling($item, ['code']); $convertedItem = []; foreach ($item as $field => $data) { $convertedItem = $this->convertField($convertedItem, $field, $data); } return $convertedItem; }
/** * {@inheritdoc} * * Converts flat csv array to standard structured array: */ public function convert(array $item, array $options = []) { $this->fieldChecker->checkFieldsPresence($item, ['code']); $this->fieldChecker->checkFieldsFilling($item, ['code']); $convertedItem = ['labels' => []]; foreach ($item as $field => $data) { $convertedItem = $this->convertFields($field, $this->booleanFields, $data, $convertedItem); } return $convertedItem; }
/** * @param array $item * * @throws StructureArrayConversionException */ protected function validate(array $item) { $requiredFields = ['attribute', 'code']; $this->fieldChecker->checkFieldsPresence($item, $requiredFields); $authorizedFields = array_merge($requiredFields, ['sort_order']); $localeCodes = $this->localeRepository->getActivatedLocaleCodes(); foreach ($localeCodes as $code) { $authorizedFields[] = 'label-' . $code; } foreach (array_keys($item) as $field) { if (!in_array($field, $authorizedFields)) { throw new StructureArrayConversionException(sprintf('Field "%s" is provided, authorized fields are: "%s"', $field, implode(', ', $authorizedFields))); } } }
/** * @param array $item * @param bool $withRequiredSku */ protected function validateItem(array $item, $withRequiredSku) { $requiredFields = $withRequiredSku ? [$this->attrColumnsResolver->resolveIdentifierField()] : []; $this->fieldChecker->checkFieldsPresence($item, $requiredFields); $this->validateOptionalFields($item); $this->validateFieldValueTypes($item); }
/** * @param array $item */ protected function validate(array $item) { $this->fieldChecker->checkFieldsPresence($item, ['code', 'type']); $this->fieldChecker->checkFieldsFilling($item, ['code', 'type']); $this->validateAuthorizedFields($item, ['axis', 'type', 'code']); }