Skip to content

Commit 86c2885

Browse files
authored
moved prepary body method to HttpCypherFormatter (#2)
* moved prepary body method to HttpCypherFormatter * ran php-cs-fixer
1 parent 67752ec commit 86c2885

File tree

2 files changed

+30
-29
lines changed

2 files changed

+30
-29
lines changed

src/Formatter/HttpCypherFormatter.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@
1616
use Ds\Map;
1717
use Ds\Vector;
1818
use InvalidArgumentException;
19+
use JsonException;
1920
use Laudis\Neo4j\Databags\Neo4jError;
21+
use Laudis\Neo4j\Databags\RequestData;
22+
use Laudis\Neo4j\Databags\Statement;
2023
use Laudis\Neo4j\Databags\StatementStatistics;
24+
use stdClass;
2125

2226
/**
2327
* @psalm-type CypherStats = array{
@@ -130,4 +134,28 @@ private function buildResult(array $result): Vector
130134

131135
return $tbr;
132136
}
137+
138+
/**
139+
* @param iterable<Statement> $statements
140+
*
141+
* @throws JsonException
142+
*/
143+
public function prepareBody(iterable $statements, RequestData $config): string
144+
{
145+
$tbr = [];
146+
foreach ($statements as $statement) {
147+
$st = [
148+
'statement' => $statement->getText(),
149+
'resultDataContents' => ['ROW'],
150+
'includeStats' => $config->includeStats(),
151+
];
152+
$parameters = $statement->getParameters();
153+
$st['parameters'] = $parameters === [] ? new stdClass() : $parameters;
154+
$tbr[] = $st;
155+
}
156+
157+
return json_encode([
158+
'statements' => $tbr,
159+
], JSON_THROW_ON_ERROR);
160+
}
133161
}

src/HttpDriver/RequestFactory.php

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

1414
namespace Laudis\Neo4j\HttpDriver;
1515

16-
use function json_encode;
17-
use const JSON_THROW_ON_ERROR;
1816
use JsonException;
1917
use Laudis\Neo4j\Contracts\ClientInterface;
2018
use Laudis\Neo4j\Databags\RequestData;
@@ -23,7 +21,6 @@
2321
use Psr\Http\Message\RequestFactoryInterface;
2422
use Psr\Http\Message\RequestInterface;
2523
use Psr\Http\Message\StreamFactoryInterface;
26-
use stdClass;
2724

2825
final class RequestFactory
2926
{
@@ -62,7 +59,7 @@ private function createRequest(RequestData $data, string $method, string $body =
6259
*/
6360
public function pushToTransaction(RequestData $data, int $transactionId, iterable $statements): RequestInterface
6461
{
65-
$body = $this->prepareBody($statements, $data);
62+
$body = $this->formatter->prepareBody($statements, $data);
6663
$endpoint = $data->getEndpoint().'/'.$transactionId;
6764

6865
return $this->createRequest($data->withEndpoint($endpoint), 'POST', $body);
@@ -75,7 +72,7 @@ public function pushToTransaction(RequestData $data, int $transactionId, iterabl
7572
*/
7673
public function post(RequestData $data, iterable $statements): RequestInterface
7774
{
78-
$body = $this->prepareBody($statements, $data);
75+
$body = $this->formatter->prepareBody($statements, $data);
7976

8077
return $this->createRequest($data, 'POST', $body);
8178
}
@@ -84,28 +81,4 @@ public function delete(RequestData $data): RequestInterface
8481
{
8582
return $this->createRequest($data, 'DELETE');
8683
}
87-
88-
/**
89-
* @param iterable<Statement> $statements
90-
*
91-
* @throws JsonException
92-
*/
93-
private function prepareBody(iterable $statements, RequestData $config): string
94-
{
95-
$tbr = [];
96-
foreach ($statements as $statement) {
97-
$st = [
98-
'statement' => $statement->getText(),
99-
'resultDataContents' => ['ROW'],
100-
'includeStats' => $config->includeStats(),
101-
];
102-
$parameters = $statement->getParameters();
103-
$st['parameters'] = $parameters === [] ? new stdClass() : $parameters;
104-
$tbr[] = $st;
105-
}
106-
107-
return json_encode([
108-
'statements' => $tbr,
109-
], JSON_THROW_ON_ERROR);
110-
}
11184
}

0 commit comments

Comments
 (0)