PluginProbe
ZIP AI – AI Website Builder & AI Agent (Beta) / 0.0.8
ZIP AI – AI Website Builder & AI Agent (Beta) v0.0.8
0.0.10 0.0.9 trunk 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8
zip-ai / lib / php-mcp-schema / src / Server / Logging / DTO / SetLevelRequest.php

SetLevelRequest.php in ZIP AI – AI Website Builder & AI Agent (Beta) 0.0.8, at lib/php-mcp-schema/src/Server/Logging/DTO/SetLevelRequest.php

105 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WP\McpSchema\Server\Logging\DTO;
6
7 use WP\McpSchema\Common\JsonRpc\DTO\JSONRPCRequest;
8 use WP\McpSchema\Common\Protocol\Union\ClientRequestInterface;
9 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
10
11 /**
12 * A request from the client to the server, to enable or adjust logging.
13 *
14 * @since 2024-11-05
15 * @last-updated 2025-11-25 (modified property: params)
16 *
17 * @mcp-domain Server
18 * @mcp-subdomain Logging
19 * @mcp-version 2025-11-25
20 */
21 class SetLevelRequest extends JSONRPCRequest implements ClientRequestInterface
22 {
23 use ValidatesRequiredFields;
24
25 public const METHOD = 'logging/setLevel';
26
27 public const DISCRIMINATOR_FIELD = 'method';
28 public const DISCRIMINATOR_VALUE = 'logging/setLevel';
29
30 /**
31 * @var \WP\McpSchema\Server\Logging\DTO\SetLevelRequestParams
32 */
33 protected SetLevelRequestParams $typedParams;
34
35 /**
36 * @param '2.0' $jsonrpc @since 2025-11-25
37 * @param string|number $id @since 2025-11-25
38 * @param \WP\McpSchema\Server\Logging\DTO\SetLevelRequestParams $params @since 2024-11-05
39 */
40 public function __construct(
41 string $jsonrpc,
42 $id,
43 SetLevelRequestParams $params
44 ) {
45 parent::__construct(self::METHOD, $jsonrpc, $id, null);
46 $this->typedParams = $params;
47 }
48
49 /**
50 * Creates an instance from an array.
51 *
52 * @param array{
53 * jsonrpc: '2.0',
54 * id: string|number,
55 * method: 'logging/setLevel',
56 * params: array<string, mixed>|\WP\McpSchema\Server\Logging\DTO\SetLevelRequestParams
57 * } $data
58 * @phpstan-param array<string, mixed> $data
59 * @return self
60 */
61 public static function fromArray(array $data): self
62 {
63 self::assertRequired($data, ['jsonrpc', 'id', 'params']);
64
65 /** @var '2.0' $jsonrpc */
66 $jsonrpc = self::asString($data['jsonrpc']);
67
68 /** @var string|number $id */
69 $id = self::asStringOrNumber($data['id']);
70
71 /** @var \WP\McpSchema\Server\Logging\DTO\SetLevelRequestParams $params */
72 $params = is_array($data['params'])
73 ? SetLevelRequestParams::fromArray(self::asArray($data['params']))
74 : $data['params'];
75
76 return new self(
77 $jsonrpc,
78 $id,
79 $params
80 );
81 }
82
83 /**
84 * Converts the instance to an array.
85 *
86 * @return array<string, mixed>
87 */
88 public function toArray(): array
89 {
90 $result = parent::toArray();
91
92 $result['params'] = $this->typedParams->toArray();
93
94 return $result;
95 }
96
97 /**
98 * @return \WP\McpSchema\Server\Logging\DTO\SetLevelRequestParams
99 */
100 public function getTypedParams(): SetLevelRequestParams
101 {
102 return $this->typedParams;
103 }
104 }
105