|
25 | 25 | use Laudis\Neo4j\Contracts\SessionInterface;
|
26 | 26 | use Laudis\Neo4j\Contracts\UnmanagedTransactionInterface;
|
27 | 27 | use Laudis\Neo4j\Databags\DriverConfiguration;
|
| 28 | +use Laudis\Neo4j\Databags\SessionConfiguration; |
28 | 29 | use Laudis\Neo4j\Databags\Statement;
|
29 | 30 | use Laudis\Neo4j\Databags\TransactionConfiguration;
|
| 31 | +use Laudis\Neo4j\Enum\AccessMode; |
30 | 32 | use Laudis\Neo4j\Types\CypherList;
|
31 | 33 | use function sprintf;
|
32 | 34 |
|
@@ -66,22 +68,22 @@ public function __construct(Map $driverConfigurations, DriverConfiguration $conf
|
66 | 68 |
|
67 | 69 | public function run(string $query, iterable $parameters = [], ?string $alias = null)
|
68 | 70 | {
|
69 |
| - return $this->startSession($alias)->run($query, $parameters); |
| 71 | + return $this->startSession($alias, SessionConfiguration::default())->run($query, $parameters); |
70 | 72 | }
|
71 | 73 |
|
72 | 74 | public function runStatement(Statement $statement, ?string $alias = null)
|
73 | 75 | {
|
74 |
| - return $this->startSession($alias)->runStatement($statement); |
| 76 | + return $this->startSession($alias, SessionConfiguration::default())->runStatement($statement); |
75 | 77 | }
|
76 | 78 |
|
77 | 79 | public function runStatements(iterable $statements, ?string $alias = null): CypherList
|
78 | 80 | {
|
79 |
| - return $this->startSession($alias)->runStatements($statements); |
| 81 | + return $this->startSession($alias, SessionConfiguration::default())->runStatements($statements); |
80 | 82 | }
|
81 | 83 |
|
82 | 84 | public function beginTransaction(?iterable $statements = null, ?string $alias = null): UnmanagedTransactionInterface
|
83 | 85 | {
|
84 |
| - return $this->startSession($alias)->beginTransaction($statements); |
| 86 | + return $this->startSession($alias, SessionConfiguration::default())->beginTransaction($statements); |
85 | 87 | }
|
86 | 88 |
|
87 | 89 | public function getDriver(?string $alias): DriverInterface
|
@@ -110,24 +112,24 @@ public function getDriver(?string $alias): DriverInterface
|
110 | 112 | /**
|
111 | 113 | * @return SessionInterface<T>
|
112 | 114 | */
|
113 |
| - private function startSession(?string $alias = null): SessionInterface |
| 115 | + private function startSession(?string $alias = null, SessionConfiguration $configuration = null): SessionInterface |
114 | 116 | {
|
115 |
| - return $this->getDriver($alias)->createSession(); |
| 117 | + return $this->getDriver($alias)->createSession($configuration ?? SessionConfiguration::default()); |
116 | 118 | }
|
117 | 119 |
|
118 | 120 | public function writeTransaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
|
119 | 121 | {
|
120 |
| - return $this->startSession($alias)->writeTransaction($tsxHandler, $config); |
| 122 | + return $this->startSession($alias, SessionConfiguration::default()->withAccessMode(AccessMode::WRITE()))->writeTransaction($tsxHandler, $config); |
121 | 123 | }
|
122 | 124 |
|
123 | 125 | public function readTransaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
|
124 | 126 | {
|
125 |
| - return $this->startSession($alias)->readTransaction($tsxHandler, $config); |
| 127 | + return $this->startSession($alias, SessionConfiguration::default()->withAccessMode(AccessMode::READ()))->readTransaction($tsxHandler, $config); |
126 | 128 | }
|
127 | 129 |
|
128 | 130 | public function transaction(callable $tsxHandler, ?string $alias = null, ?TransactionConfiguration $config = null)
|
129 | 131 | {
|
130 |
| - return $this->startSession($alias)->transaction($tsxHandler, $config); |
| 132 | + return $this->writeTransaction($tsxHandler, $alias, $config); |
131 | 133 | }
|
132 | 134 |
|
133 | 135 | /**
|
|
0 commit comments