public function handle(Request $request, Parameters $configuration, Context $context) { $response = $this->processor->execute($configuration->get('source'), $request, $context); $visitor = new StdClassSerializeVisitor(); $traverser = new GraphTraverser(); $traverser->traverse($response->getBody(), $visitor); $importer = $this->importerManager->getImporterByInstance('PSX\\Data\\Record\\Importer\\Record'); $body = $importer->import(new Record(), $visitor->getObject()); return $this->processor->execute($configuration->get('destination'), $request->withBody($body), $context); }
public function factory($data) { if (!$data instanceof \stdClass) { throw new RuntimeException('Models must be an object'); } $importer = $this->importerManager->getImporterByInstance('PSX\\Data\\Record\\Importer\\Record'); $models = new \stdClass(); foreach ($data as $name => $value) { $model = new Model(); $model = $importer->import($model, $value); $model->setId($name); $models->{$name} = $model; } return $models; }
public function factory($data) { if ($data instanceof \stdClass) { $class = null; if (isset($data->objectType) && !empty($data->objectType)) { $class = $this->resolveType($data->objectType); } if ($class !== null && class_exists($class)) { $object = new $class(); } else { $object = new Object(); } $importer = $this->importerManager->getImporterByInstance('PSX\\Data\\Record\\Importer\\Record'); return $importer->import($object, $data); } elseif (is_array($data)) { $objects = array(); foreach ($data as $row) { $objects[] = $this->factory($row); } return $objects; } else { return $data; } }