Skip to content

Commit e836200

Browse files
committed
Refactor fixes for #558 and #559
1 parent 8050ad1 commit e836200

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

api.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7474,18 +7474,25 @@ private function parseBody(string $body) /*: ?object*/
74747474
return $object;
74757475
}
74767476

7477-
public function handle(ServerRequestInterface $request): ResponseInterface
7477+
private function addParsedBody(ServerRequestInterface $request): ServerRequestInterface
74787478
{
7479-
$response = null;
74807479
$body = $request->getBody();
74817480
if ($body->isReadable() && $body->isSeekable()) {
74827481
$contents = $body->getContents();
74837482
$body->rewind();
7484-
$parsedBody = $this->parseBody($contents);
7485-
$request = $request->withParsedBody($parsedBody);
7483+
if ($contents) {
7484+
$parsedBody = $this->parseBody($contents);
7485+
$request = $request->withParsedBody($parsedBody);
7486+
}
74867487
}
7488+
return $request;
7489+
}
7490+
7491+
public function handle(ServerRequestInterface $request): ResponseInterface
7492+
{
7493+
$response = null;
74877494
try {
7488-
$response = $this->router->route($request);
7495+
$response = $this->router->route($this->addParsedBody($request));
74897496
} catch (\Throwable $e) {
74907497
$response = $this->responder->error(ErrorCode::ERROR_NOT_FOUND, $e->getMessage());
74917498
if ($this->debug) {

src/Tqdev/PhpCrudApi/Api.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,18 +153,25 @@ private function parseBody(string $body) /*: ?object*/
153153
return $object;
154154
}
155155

156-
public function handle(ServerRequestInterface $request): ResponseInterface
156+
private function addParsedBody(ServerRequestInterface $request): ServerRequestInterface
157157
{
158-
$response = null;
159158
$body = $request->getBody();
160159
if ($body->isReadable() && $body->isSeekable()) {
161160
$contents = $body->getContents();
162161
$body->rewind();
163-
$parsedBody = $this->parseBody($contents);
164-
$request = $request->withParsedBody($parsedBody);
162+
if ($contents) {
163+
$parsedBody = $this->parseBody($contents);
164+
$request = $request->withParsedBody($parsedBody);
165+
}
165166
}
167+
return $request;
168+
}
169+
170+
public function handle(ServerRequestInterface $request): ResponseInterface
171+
{
172+
$response = null;
166173
try {
167-
$response = $this->router->route($request);
174+
$response = $this->router->route($this->addParsedBody($request));
168175
} catch (\Throwable $e) {
169176
$response = $this->responder->error(ErrorCode::ERROR_NOT_FOUND, $e->getMessage());
170177
if ($this->debug) {

0 commit comments

Comments
 (0)