Skip to content

Commit 222003d

Browse files
committed
Hydrate WebHooks
1 parent bf7c57d commit 222003d

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/Generator/WebHooks.php

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace ApiClients\Tools\OpenApiClientGenerator\Generator;
44

5+
use ApiClients\Contracts\HTTP\Headers\AuthenticationInterface;
56
use ApiClients\Contracts\OpenAPI\WebHookInterface;
67
use ApiClients\Tools\OpenApiClientGenerator\File;
78
use cebe\openapi\spec\Operation as OpenAPiOperation;
@@ -14,6 +15,7 @@
1415
use PhpParser\Node\Stmt\Class_;
1516
use Psr\Http\Message\RequestInterface;
1617
use Psr\Http\Message\ServerRequestInterface;
18+
use React\Http\Browser;
1719
use RingCentral\Psr7\Request;
1820

1921
final class WebHooks
@@ -50,6 +52,22 @@ public static function generate(string $namespace, string $baseNamespace, array
5052
],
5153
Class_::MODIFIER_PUBLIC
5254
)
55+
)->addStmt(
56+
$factory->property('hydrator')->setType('\\' . $namespace . 'OptimizedHydratorMapper')->makeReadonly()->makePrivate()
57+
)->addStmt(
58+
$factory->method('__construct')->makePublic()->addStmt(
59+
new Node\Expr\Assign(
60+
new Node\Expr\PropertyFetch(
61+
new Node\Expr\Variable('this'),
62+
'hydrator'
63+
),
64+
new Node\Expr\New_(
65+
new Node\Name('\\' . $namespace . 'OptimizedHydratorMapper'),
66+
[
67+
]
68+
),
69+
)
70+
)
5371
)->addStmt(
5472
$factory->method('resolve')->makePublic()->makeStatic()->setReturnType('\\' . WebHookInterface::class)->addParam(
5573
(new Param('event'))->setType('string')
@@ -99,6 +117,36 @@ public static function generate(string $namespace, string $baseNamespace, array
99117
)
100118
)
101119
))
120+
)->addStmt(
121+
$factory->method('hydrate')->makePublic()->setReturnType('object')->addParam(
122+
(new Param('event'))->setType('string')
123+
)->addParam(
124+
(new Param('data'))->setType('array')
125+
)->addStmt(new Node\Stmt\Return_(
126+
new Node\Expr\MethodCall(
127+
new Node\Expr\PropertyFetch(
128+
new Node\Expr\Variable('this'),
129+
'hydrator'
130+
),
131+
new Node\Name('hydrateObject'),
132+
[
133+
new Node\Arg(new Node\Expr\MethodCall(
134+
new Node\Expr\StaticCall(
135+
new Node\Name('self'),
136+
new Node\Name('resolve'),
137+
[
138+
new Node\Arg(new Node\Expr\Variable('event')),
139+
]
140+
),
141+
new Node\Name('resolve'),
142+
[
143+
new Node\Arg(new Node\Expr\Variable('data')),
144+
]
145+
)),
146+
new Node\Arg(new Node\Expr\Variable('data')),
147+
]
148+
)
149+
))
102150
);
103151
yield new File($namespace . '\\' . 'WebHooks', $stmt->addStmt($class)->getNode());
104152
}

0 commit comments

Comments
 (0)