Skip to content

Commit de532f9

Browse files
committed
fixes #140
1 parent 76cd22b commit de532f9

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/Formatter/BasicFormatter.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,18 @@
1313

1414
namespace Laudis\Neo4j\Formatter;
1515

16+
use function array_key_exists;
1617
use Bolt\structures\Path;
1718
use function get_class;
1819
use function gettype;
1920
use function is_array;
2021
use function is_object;
22+
use function is_string;
2123
use Laudis\Neo4j\Bolt\BoltConnection;
2224
use Laudis\Neo4j\Bolt\BoltResult;
2325
use Laudis\Neo4j\Contracts\ConnectionInterface;
2426
use Laudis\Neo4j\Contracts\FormatterInterface;
27+
use Laudis\Neo4j\Databags\Bookmark;
2528
use Laudis\Neo4j\Databags\BookmarkHolder;
2629
use Laudis\Neo4j\Databags\Statement;
2730
use Laudis\Neo4j\Types\CypherList;
@@ -56,17 +59,22 @@ public static function create(): self
5659
*
5760
* @return CypherList<CypherMap<array|scalar|null>>
5861
*/
59-
public function formatBoltResult(array $meta, BoltResult $result, BoltConnection $connection, ?float $runStart, ?float $resultAvailableAfter, ?Statement $statement, ?BookmarkHolder $holder = null): CypherList
62+
public function formatBoltResult(array $meta, BoltResult $result, BoltConnection $connection, float $runStart, float $resultAvailableAfter, Statement $statement, BookmarkHolder $holder): CypherList
6063
{
61-
$result = (new CypherList(function () use ($meta, $result) {
64+
$tbr = (new CypherList(function () use ($meta, $result) {
6265
foreach ($result as $row) {
6366
yield $this->formatRow($meta, $row);
6467
}
6568
}))->withCacheLimit($result->getFetchSize());
6669

67-
$connection->subscribeResult($result);
70+
$connection->subscribeResult($tbr);
71+
$result->addFinishedCallback(function (array $response) use ($holder) {
72+
if (array_key_exists('bookmark', $response) && is_string($response['bookmark'])) {
73+
$holder->setBookmark(new Bookmark([$response['bookmark']]));
74+
}
75+
});
6876

69-
return $result;
77+
return $tbr;
7078
}
7179

7280
/**

0 commit comments

Comments
 (0)