private function mapEntityResult(array $entityResult, $class)
{
$entities = [];
foreach ($entityResult as $result) {
$entity = $result['entity'];
$properties = [];
$excludes = [];
$meanings = [];
if (isset($entity['properties'])) {
$res = $this->entityMapper->responseToEntityProperties($entity['properties']);
$properties = $res['properties'];
$excludes = $res['excludes'];
$meanings = $res['meanings'];
}
$namespaceId = isset($entity['key']['partitionId']['namespaceId']) ? $entity['key']['partitionId']['namespaceId'] : null;
$key = new Key($this->projectId, ['path' => $entity['key']['path'], 'namespaceId' => $namespaceId]);
if (is_array($class)) {
$lastPathElement = $key->pathEnd();
if (!array_key_exists($lastPathElement['kind'], $class)) {
throw new InvalidArgumentException(sprintf('No class found for kind %s', $lastPathElement['kind']));
}
$className = $class[$lastPathElement['kind']];
} else {
$className = $class;
}
$entities[] = $this->entity($key, $properties, ['cursor' => isset($result['cursor']) ? $result['cursor'] : null, 'baseVersion' => isset($result['version']) ? $result['version'] : null, 'className' => $className, 'populatedByService' => true, 'excludeFromIndexes' => $excludes, 'meanings' => $meanings]);
}
return $entities;
}