@@ 9-48 (lines=40) @@ | ||
6 | ||
7 | use Aweapi\Openapi\Objects; |
|
8 | ||
9 | final class CallbackRequestBuilder implements Objects\CallbackRequestFactory |
|
10 | { |
|
11 | use Properties\OptionalExtensions; |
|
12 | ||
13 | private $items = []; |
|
14 | ||
15 | public function addItems(iterable $items): self |
|
16 | { |
|
17 | foreach ($items as $expression => $path) { |
|
18 | $this->setItem($expression, $path); |
|
19 | } |
|
20 | ||
21 | return $this; |
|
22 | } |
|
23 | ||
24 | public function createCallbackRequest(): Objects\CallbackRequest |
|
25 | { |
|
26 | return new Objects\CallbackRequest( |
|
27 | array_map( |
|
28 | static function (Objects\PathFactory $factory): Objects\Path { |
|
29 | return $factory->createPath(); |
|
30 | }, |
|
31 | $this->getItems() |
|
32 | ), |
|
33 | $this->getExtensions() |
|
34 | ); |
|
35 | } |
|
36 | ||
37 | public function setItem(string $expression, Objects\PathFactory $path): self |
|
38 | { |
|
39 | $this->items[$expression] = $path; |
|
40 | ||
41 | return $this; |
|
42 | } |
|
43 | ||
44 | private function getItems(): array |
|
45 | { |
|
46 | return $this->items; |
|
47 | } |
|
48 | } |
|
49 |
@@ 9-48 (lines=40) @@ | ||
6 | ||
7 | use Aweapi\Openapi\Objects; |
|
8 | ||
9 | final class PathsBuilder implements Objects\PathsFactory |
|
10 | { |
|
11 | use Properties\OptionalExtensions; |
|
12 | ||
13 | private $paths = []; |
|
14 | ||
15 | public function addPaths(iterable $paths): self |
|
16 | { |
|
17 | foreach ($paths as $urlPath => $path) { |
|
18 | $this->setPath($urlPath, $path); |
|
19 | } |
|
20 | ||
21 | return $this; |
|
22 | } |
|
23 | ||
24 | public function createPaths(): Objects\Paths |
|
25 | { |
|
26 | return new Objects\Paths( |
|
27 | array_map( |
|
28 | static function (Objects\PathFactory $factory): Objects\Path { |
|
29 | return $factory->createPath(); |
|
30 | }, |
|
31 | $this->getPaths() |
|
32 | ), |
|
33 | $this->getExtensions() |
|
34 | ); |
|
35 | } |
|
36 | ||
37 | public function setPath(string $urlPath, Objects\PathFactory $path): self |
|
38 | { |
|
39 | $this->paths[$urlPath] = $path; |
|
40 | ||
41 | return $this; |
|
42 | } |
|
43 | ||
44 | private function getPaths(): array |
|
45 | { |
|
46 | return $this->paths; |
|
47 | } |
|
48 | } |
|
49 |