outline-8.x-1.x-dev/modules/outline_graphql/src/Wrappers/RootEntryConnection.php
modules/outline_graphql/src/Wrappers/RootEntryConnection.php
<?php
namespace Drupal\outline_graphql\Wrappers;
use Drupal\Core\Entity\Query\QueryInterface;
use GraphQL\Deferred;
class RootEntryConnection {
/**
* @var \Drupal\Core\Entity\Query\Sql\Query
*/
protected $query;
/**
* QueryConnection constructor.
*
* @param \Drupal\Core\Entity\Query\QueryInterface $query
*/
public function __construct(QueryInterface $query) {
$this->query = $query;
}
/**
* @return array|\GraphQL\Deferred
*/
public function rootEntryId() {
$result = $this->query->execute();
if (empty($result)) {
return [];
}
$buffer = \Drupal::service('graphql.buffer.entity');
$callback = $buffer->add($this->query->getEntityTypeId(), array_values($result));
return new Deferred(function () use ($callback) {
return $callback();
});
}
}
