Skip to content

Commit faef22f

Browse files
committed
chore: Improve mock data handling
1 parent ba26a14 commit faef22f

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

src/GraphQL/FieldHelper/DataObjectFieldHelper.php

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,15 +400,46 @@ public function doExtractData(FieldNode $ast, &$data, $container, $args, $contex
400400
// in this case we just try to get the data directly
401401
if ($container instanceof DefaultMockup) {
402402
try {
403-
// we don't have to take care about localization because this is already handled in elastic
404-
$data[$astName] = $container->$getter();
403+
$this->setValueFromMockObject($data, $container, $astName);
405404
} catch (\Exception $e) {
406405
Logger::info('Could not get data from Datahub/DataObjectFieldHelper with message: ' . $e->getMessage());
407406
}
408407
}
409408
}
410409
}
411410

411+
/**
412+
* Try to get the data from the mock object.
413+
*
414+
* Elastic values are already language specific so no locale handling.
415+
*
416+
* Because the DefaultMockup class doesn't provide APIs to check if data
417+
* exist we've to load all the things and essentially rebuild how
418+
* \Pimcore\Bundle\EcommerceFrameworkBundle\Model\DefaultMockup::__call()
419+
* works.
420+
*
421+
* @param $data
422+
* @param \Pimcore\Bundle\EcommerceFrameworkBundle\Model\DefaultMockup $container
423+
* @param $astName
424+
*
425+
* @return mixed|void
426+
*/
427+
protected function setValueFromMockObject(&$data, DefaultMockup $container, $astName)
428+
{
429+
$params = $container->getParams();
430+
if (is_array($params) && array_key_exists($astName, $params)) {
431+
$data[$astName] = $params[$astName];
432+
} else {
433+
$relations = $container->getRelations();
434+
if (is_array($relations) && array_key_exists($astName, $relations)) {
435+
$relation = $container->getRelationAttribute($astName);
436+
if ($relation) {
437+
$data[$astName] = $relation;
438+
}
439+
}
440+
}
441+
}
442+
412443
/**
413444
* @param object $container
414445
* @param string $astName

0 commit comments

Comments
 (0)