Exemplo n.º 1
0
 /**
  * Loads a list of entities by a list of field conditions.
  *
  * @param array      $conditions
  * @param array|null $orderBy
  * @param int|null   $limit
  * @param int|null   $offset
  *
  * @return array
  */
 public function loadAll(array $conditions = [], array $orderBy = [], $limit = null, $offset = null)
 {
     $uri = $this->getUri($conditions, $orderBy, $limit, $offset);
     $route = $this->getRoute($conditions, $orderBy, $limit, $offset);
     $response = $this->connection->request('GET', $uri);
     return $this->serializer->deserialize($response->getBody(), $route->returnsCollection(), $route->getEnvelopes());
 }
Exemplo n.º 2
0
 /**
  * @param array $data
  *
  * @return array
  */
 private function mapFromSerialized(array $data)
 {
     $mappedEntityData = [];
     foreach ($data as $serializedName => $value) {
         if ($this->classMetadata->hasField($this->classMetadata->getFieldName($serializedName))) {
             $fieldName = $this->classMetadata->getFieldName($serializedName);
             $fieldMapping = $this->classMetadata->getFieldMapping($fieldName);
             if (isset($fieldMapping['association'])) {
                 $embedded = [];
                 $associationMetadata = $this->classMetadataFactory->getMetadataFor($fieldMapping['targetEntity']);
                 $associationSerializer = new Serializer($associationMetadata, $this->unitOfWork, $this->classMetadataFactory);
                 if ($fieldMapping['association'] === ClassMetadata::EMBED_ONE) {
                     if (is_array($value)) {
                         $associationData = $associationSerializer->mapFromSerialized($value);
                         $associationSerializer->hydrateSingleEntity($associationData, $embedded);
                         $value = reset($embedded);
                     } else {
                         $value = null;
                     }
                 }
             } else {
                 $type = Type::getType($fieldMapping['type']);
                 $value = $type->convertToPhpValue($value);
             }
             $mappedEntityData[$fieldName] = $value;
         }
     }
     return $mappedEntityData;
 }