1: | <?php |
2: | |
3: | declare(strict_types=1); |
4: | |
5: | |
6: | |
7: | |
8: | |
9: | |
10: | |
11: | |
12: | |
13: | |
14: | namespace Nexus\Mcp\Message\Request; |
15: | |
16: | use Nexus\Mcp\Message\Request; |
17: | use Nexus\Mcp\Message\RequestId; |
18: | |
19: | |
20: | |
21: | |
22: | final readonly class JsonRpcRequest extends Request |
23: | { |
24: | |
25: | |
26: | |
27: | |
28: | |
29: | public function __construct( |
30: | string $jsonrpc, |
31: | public RequestId $requestId, |
32: | string $method, |
33: | ?array $params = null, |
34: | ) { |
35: | parent::__construct($jsonrpc, $method, $params); |
36: | } |
37: | |
38: | |
39: | |
40: | |
41: | |
42: | |
43: | |
44: | |
45: | |
46: | #[\Override] |
47: | public function toArray(): array |
48: | { |
49: | return array_filter([ |
50: | 'jsonrpc' => $this->jsonrpc, |
51: | 'id' => $this->requestId->id, |
52: | 'method' => $this->method, |
53: | 'params' => $this->params, |
54: | ], static fn(mixed $value): bool => null !== $value); |
55: | } |
56: | } |
57: | |