示例#1
0
 /**
  * {@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;
 }
示例#3
0
 /**
  * {@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)));
         }
     }
 }
示例#5
0
 /**
  * @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']);
 }