Skip to content

Commit e6f417a

Browse files
committed
fixed typing in http
1 parent 3108307 commit e6f417a

File tree

6 files changed

+32
-25
lines changed

6 files changed

+32
-25
lines changed

src/Contracts/FormatterInterface.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
use Bolt\Bolt;
1717
use Bolt\protocol\V3;
1818
use JsonException;
19+
use Laudis\Neo4j\Bolt\BoltConnection;
1920
use Laudis\Neo4j\Bolt\BoltResult;
2021
use Laudis\Neo4j\Databags\Statement;
22+
use Laudis\Neo4j\Http\HttpConnection;
2123
use Laudis\Neo4j\Types\CypherList;
2224
use Psr\Http\Message\RequestInterface;
2325
use Psr\Http\Message\ResponseInterface;
@@ -73,11 +75,10 @@ interface FormatterInterface
7375
* Formats the results of the bolt protocol to the unified format.
7476
*
7577
* @param BoltMeta $meta
76-
* @param ConnectionInterface<V3> $connection
7778
*
7879
* @return ResultFormat
7980
*/
80-
public function formatBoltResult(array $meta, BoltResult $result, ConnectionInterface $connection, float $runStart, float $resultAvailableAfter, Statement $statement);
81+
public function formatBoltResult(array $meta, BoltResult $result, BoltConnection $connection, float $runStart, float $resultAvailableAfter, Statement $statement);
8182

8283
/**
8384
* Formats the results of the HTTP protocol to the unified format.
@@ -90,7 +91,7 @@ public function formatBoltResult(array $meta, BoltResult $result, ConnectionInte
9091
*
9192
* @psalm-mutation-free
9293
*/
93-
public function formatHttpResult(ResponseInterface $response, stdClass $body, ConnectionInterface $connection, float $resultsAvailableAfter, float $resultsConsumedAfter, iterable $statements): CypherList;
94+
public function formatHttpResult(ResponseInterface $response, stdClass $body, HttpConnection $connection, float $resultsAvailableAfter, float $resultsConsumedAfter, iterable $statements): CypherList;
9495

9596
/**
9697
* Decorates a request to make make sure it requests the correct format.

src/Formatter/SummarizedResultFormatter.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
namespace Laudis\Neo4j\Formatter;
1515

16+
use Laudis\Neo4j\Bolt\BoltConnection;
17+
use Laudis\Neo4j\Databags\DatabaseInfo;
1618
use function in_array;
1719
use function is_int;
1820
use Laudis\Neo4j\Bolt\BoltResult;
@@ -24,6 +26,7 @@
2426
use Laudis\Neo4j\Databags\SummarizedResult;
2527
use Laudis\Neo4j\Databags\SummaryCounters;
2628
use Laudis\Neo4j\Enum\QueryTypeEnum;
29+
use Laudis\Neo4j\Http\HttpConnection;
2730
use Laudis\Neo4j\Types\CypherList;
2831
use Laudis\Neo4j\Types\CypherMap;
2932
use function microtime;
@@ -70,7 +73,7 @@ public function __construct(OGMFormatter $formatter)
7073
*
7174
* @psalm-mutation-free
7275
*/
73-
public function formatHttpStats(stdClass $response, ConnectionInterface $connection, Statement $statement, float $resultAvailableAfter, float $resultConsumedAfter, CypherList $results): SummarizedResult
76+
public function formatHttpStats(stdClass $response, HttpConnection $connection, Statement $statement, float $resultAvailableAfter, float $resultConsumedAfter, CypherList $results): SummarizedResult
7477
{
7578
if ($response->summary instanceof stdClass) {
7679
/** @var stdClass $stats */
@@ -161,17 +164,19 @@ public function formatBoltStats(array $response): SummaryCounters
161164
);
162165
}
163166

164-
public function formatBoltResult(array $meta, BoltResult $result, ConnectionInterface $connection, float $runStart, float $resultAvailableAfter, Statement $statement): SummarizedResult
167+
public function formatBoltResult(array $meta, BoltResult $result, BoltConnection $connection, float $runStart, float $resultAvailableAfter, Statement $statement): SummarizedResult
165168
{
166169
/** @var ResultSummary|null $summary */
167170
$summary = null;
168171
$result->setFinishedCallback(function (array $counters) use ($connection, $statement, $runStart, $resultAvailableAfter, &$summary) {
169172
/** @var BoltCypherStats $counters */
170173
$stats = $this->formatBoltStats($counters);
171174
$resultConsumedAfter = $runStart - microtime(true);
175+
/** @var string */
176+
$db = $counters['db'] ?? '';
172177
$summary = new ResultSummary(
173178
$stats,
174-
$connection->getDatabaseInfo(),
179+
new DatabaseInfo($db),
175180
new CypherList(),
176181
null,
177182
null,
@@ -202,7 +207,7 @@ public function formatBoltResult(array $meta, BoltResult $result, ConnectionInte
202207
*
203208
* @psalm-suppress ImpureMethodCall
204209
*/
205-
public function formatHttpResult(ResponseInterface $response, stdClass $body, ConnectionInterface $connection, float $resultsAvailableAfter, float $resultsConsumedAfter, iterable $statements): CypherList
210+
public function formatHttpResult(ResponseInterface $response, stdClass $body, HttpConnection $connection, float $resultsAvailableAfter, float $resultsConsumedAfter, iterable $statements): CypherList
206211
{
207212
/** @var list<SummarizedResult<CypherMap<OGMTypes>>> */
208213
$tbr = [];

src/Http/HttpConnection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function getAccessMode(): AccessMode
9595
*/
9696
public function getDatabaseInfo(): DatabaseInfo
9797
{
98-
return $this->config->getDatabaseInfo();
98+
return $this->config->getDatabaseInfo() ?? new DatabaseInfo('');
9999
}
100100

101101
/**

src/Http/HttpConnectionPool.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
namespace Laudis\Neo4j\Http;
1515

16+
use Laudis\Neo4j\Common\ConnectionConfiguration;
17+
use Laudis\Neo4j\Databags\DriverConfiguration;
1618
use function json_encode;
1719
use Laudis\Neo4j\Common\Resolvable;
1820
use Laudis\Neo4j\Contracts\AuthenticateInterface;
@@ -47,25 +49,28 @@ final class HttpConnectionPool implements ConnectionPoolInterface
4749
* @psalm-readonly
4850
*/
4951
private Resolvable $streamFactory;
52+
/** @psalm-readonly */
53+
private DriverConfiguration $config;
5054

5155
/**
5256
* @param Resolvable<StreamFactoryInterface> $streamFactory
5357
* @param Resolvable<RequestFactory> $requestFactory
5458
* @param Resolvable<ClientInterface> $client
5559
* @psalm-mutation-free
5660
*/
57-
public function __construct(Resolvable $client, Resolvable $requestFactory, Resolvable $streamFactory)
61+
public function __construct(Resolvable $client, Resolvable $requestFactory, Resolvable $streamFactory, DriverConfiguration $config)
5862
{
5963
$this->client = $client;
6064
$this->requestFactory = $requestFactory;
6165
$this->streamFactory = $streamFactory;
66+
$this->config = $config;
6267
}
6368

6469
public function acquire(
6570
UriInterface $uri,
6671
AuthenticateInterface $authenticate,
6772
SessionConfiguration $config
68-
): ConnectionInterface {
73+
): HttpConnection {
6974
$request = $this->requestFactory->resolve()->createRequest('POST', $uri);
7075

7176
$path = $request->getUri()->getPath().'/commit';
@@ -95,15 +100,17 @@ public function acquire(
95100

96101
$version = $results[0]['versions'][0] ?? '';
97102

98-
return new HttpConnection(
99-
$this->client->resolve(),
103+
$config = new ConnectionConfiguration(
100104
$results[0]['name'].'-'.$results[0]['edition'].'/'.($version),
101105
$uri,
102106
$version,
103107
ConnectionProtocol::HTTP(),
104108
$config->getAccessMode(),
105-
new DatabaseInfo($config->getDatabase())
109+
$this->config,
110+
new DatabaseInfo($config->getDatabase() ?? '')
106111
);
112+
113+
return new HttpConnection($this->client->resolve(), $config);
107114
}
108115

109116
public function canConnect(UriInterface $uri, AuthenticateInterface $authenticate, ?string $userAgent = null): bool

src/Http/HttpDriver.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ private function getHttpConnectionPool(): HttpConnectionPool
158158
return new HttpConnectionPool(
159159
Resolvable::once($this->key.':client', fn () => $this->config->getHttpPsrBindings()->getClient()),
160160
$this->resolvableFactory(),
161-
$this->streamFactory()
161+
$this->streamFactory(),
162+
$this->config
162163
);
163164
}
164165

src/Http/HttpUnmanagedTransaction.php

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@
1616
use function array_intersect;
1717
use function array_unique;
1818
use Laudis\Neo4j\Common\TransactionHelper;
19-
use Laudis\Neo4j\Contracts\ConnectionInterface;
2019
use Laudis\Neo4j\Contracts\FormatterInterface;
2120
use Laudis\Neo4j\Contracts\UnmanagedTransactionInterface;
2221
use Laudis\Neo4j\Databags\Neo4jError;
2322
use Laudis\Neo4j\Databags\Statement;
2423
use Laudis\Neo4j\Exception\Neo4jException;
2524
use Laudis\Neo4j\Types\CypherList;
2625
use function microtime;
27-
use Psr\Http\Client\ClientInterface;
2826
use Psr\Http\Message\RequestInterface;
2927
use Psr\Http\Message\ResponseInterface;
3028
use Psr\Http\Message\StreamFactoryInterface;
@@ -41,12 +39,8 @@ final class HttpUnmanagedTransaction implements UnmanagedTransactionInterface
4139
private RequestInterface $request;
4240
/** @psalm-readonly */
4341
private StreamFactoryInterface $factory;
44-
/**
45-
* @psalm-readonly
46-
*
47-
* @var ConnectionInterface<ClientInterface>
48-
*/
49-
private ConnectionInterface $connection;
42+
/** @psalm-readonly */
43+
private HttpConnection $connection;
5044
/**
5145
* @psalm-readonly
5246
*
@@ -61,12 +55,11 @@ final class HttpUnmanagedTransaction implements UnmanagedTransactionInterface
6155
/**
6256
* @psalm-mutation-free
6357
*
64-
* @param FormatterInterface<T> $formatter
65-
* @param ConnectionInterface<ClientInterface> $connection
58+
* @param FormatterInterface<T> $formatter
6659
*/
6760
public function __construct(
6861
RequestInterface $request,
69-
ConnectionInterface $connection,
62+
HttpConnection $connection,
7063
StreamFactoryInterface $factory,
7164
FormatterInterface $formatter
7265
) {

0 commit comments

Comments
 (0)