• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tochka-developers / jsonrpc / 4135501466

pending completion
4135501466

push

github

darkdarin
Merge remote-tracking branch 'origin/v5.0'

209 of 813 new or added lines in 51 files covered. (25.71%)

233 of 1307 relevant lines covered (17.83%)

1.84 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Support/Parser.php
1
<?php
2

3
namespace Tochka\JsonRpc\Support;
4

5
use Psr\Http\Message\ServerRequestInterface;
6
use Tochka\JsonRpc\Contracts\ParserInterface;
7
use Tochka\JsonRpc\DTO\JsonRpcServerRequest;
8
use Tochka\JsonRpc\Standard\DTO\JsonRpcRequest;
9
use Tochka\JsonRpc\Standard\Exceptions\InvalidRequestException;
10
use Tochka\JsonRpc\Standard\Exceptions\ParseErrorException;
11

12
class Parser implements ParserInterface
13
{
14
    /**
15
     * @return array<JsonRpcServerRequest>
16
     */
17
    public function parse(ServerRequestInterface $request): array
18
    {
NEW
19
        $content = (string)$request->getBody();
×
20

NEW
21
        if (empty($content)) {
×
NEW
22
            throw InvalidRequestException::from('<root>', 'Empty request');
×
23
        }
24

25
        try {
26
            /** @var array<object>|object $data */
NEW
27
            $data = json_decode($content, false, 512, JSON_THROW_ON_ERROR);
×
NEW
28
        } catch (\Throwable $e) {
×
NEW
29
            throw new ParseErrorException(previous: $e);
×
30
        }
31

NEW
32
        $calls = is_array($data) ? $data : [$data];
×
33

NEW
34
        return array_map(
×
NEW
35
            fn (object $rawRequest) => new JsonRpcServerRequest($request, JsonRpcRequest::from($rawRequest)),
×
NEW
36
            $calls
×
NEW
37
        );
×
38
    }
39
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc