Skip to content

Commit 5eb28e0

Browse files
committed
Fixed bug where read transaction were not always routed to the correct instance
1 parent d3d15cd commit 5eb28e0

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/Client.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@
2525
use Laudis\Neo4j\Contracts\SessionInterface;
2626
use Laudis\Neo4j\Contracts\UnmanagedTransactionInterface;
2727
use Laudis\Neo4j\Databags\DriverConfiguration;
28+
use Laudis\Neo4j\Databags\SessionConfiguration;
2829
use Laudis\Neo4j\Databags\Statement;
2930
use Laudis\Neo4j\Databags\TransactionConfiguration;
31+
use Laudis\Neo4j\Enum\AccessMode;
3032
use Laudis\Neo4j\Types\CypherList;
3133
use function sprintf;
3234

@@ -66,22 +68,22 @@ public function __construct(Map $driverConfigurations, DriverConfiguration $conf
6668

6769
public function run(string $query, iterable $parameters = [], ?string $alias = null)
6870
{
69-
return $this->startSession($alias)->run($query, $parameters);
71+
return $this->startSession($alias, SessionConfiguration::default())->run($query, $parameters);
7072
}
7173

7274
public function runStatement(Statement $statement, ?string $alias = null)
7375
{
74-
return $this->startSession($alias)->runStatement($statement);
76+
return $this->startSession($alias, SessionConfiguration::default())->runStatement($statement);
7577
}
7678

7779
public function runStatements(iterable $statements, ?string $alias = null): CypherList
7880
{
79-
return $this->startSession($alias)->runStatements($statements);
81+
return $this->startSession($alias, SessionConfiguration::default())->runStatements($statements);
8082
}
8183

8284
public function beginTransaction(?iterable $statements = null, ?string $alias = null): UnmanagedTransactionInterface
8385
{
84-
return $this->startSession($alias)->beginTransaction($statements);
86+
return $this->startSession($alias, SessionConfiguration::default())->beginTransaction($statements);
8587
}
8688

8789
public function getDriver(?string $alias): DriverInterface
@@ -110,24 +112,24 @@ public function getDriver(?string $alias): DriverInterface
110112
/**
111113
* @return SessionInterface<T>
112114
*/
113-
private function startSession(?string $alias = null): SessionInterface
115+
private function startSession(?string $alias = null, SessionConfiguration $configuration = null): SessionInterface
114116
{
115-
return $this->getDriver($alias)->createSession();
117+
return $this->getDriver($alias)->createSession($configuration ?? SessionConfiguration::default());
116118
}
117119

118120
public function writeTransaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
119121
{
120-
return $this->startSession($alias)->writeTransaction($tsxHandler, $config);
122+
return $this->startSession($alias, SessionConfiguration::default()->withAccessMode(AccessMode::WRITE()))->writeTransaction($tsxHandler, $config);
121123
}
122124

123125
public function readTransaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
124126
{
125-
return $this->startSession($alias)->readTransaction($tsxHandler, $config);
127+
return $this->startSession($alias, SessionConfiguration::default()->withAccessMode(AccessMode::READ()))->readTransaction($tsxHandler, $config);
126128
}
127129

128130
public function transaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
129131
{
130-
return $this->startSession($alias)->transaction($tsxHandler, $config);
132+
return $this->writeTransaction($tsxHandler, $alias, $config);
131133
}
132134

133135
/**

0 commit comments

Comments
 (0)