Code Duplication    Length = 40-40 lines in 2 locations

src/Builders/CallbackRequestBuilder.php 1 location

@@ 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

src/Builders/PathsBuilder.php 1 location

@@ 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