Completed
Pull Request — master (#4)
by Veaceslav
02:34
created

RequestBody   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
lcom 2
cbo 5
dl 0
loc 45
ccs 14
cts 14
cp 1
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A isRequired() 0 4 1
A jsonSerialize() 0 4 1
A normalizeOptionalProperties() 0 7 2
A normalizeRequiredProperties() 0 6 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Aweapi\Openapi\Objects;
6
7
use Aweapi\Openapi\Extensions;
8
use Aweapi\Openapi\ValueObject;
9
10
final class RequestBody extends ValueObject implements RequestBodyAggregate
11
{
12
    use Properties\MediaTypeContent;
13
    use Properties\OptionalDescription;
14
    use Properties\OptionalExtensions;
15
16
    private $required;
17
18 5
    public function __construct(
19
        MediaTypes $content,
20
        string $description = null,
21
        bool $required = false,
22
        Extensions $extensions = null
23
    ) {
24 5
        $this->content = $content;
25 5
        $this->description = $description;
26 5
        $this->required = $required;
27 5
        $this->extensions = $extensions;
28
    }
29
30 4
    public function isRequired(): bool
31
    {
32 4
        return $this->required;
33
    }
34
35 4
    public function jsonSerialize(): ?array
36
    {
37 4
        return $this->extendedProperties(parent::jsonSerialize());
38
    }
39
40 4
    protected function normalizeOptionalProperties(): array
41
    {
42
        return [
43 4
            'description' => $this->getNormalizedDescription(),
44 4
            'required' => $this->isRequired() ?: null,
45
        ];
46
    }
47
48 4
    protected function normalizeRequiredProperties(): array
49
    {
50
        return [
51 4
            'content' => $this->getContent()->jsonSerialize() ?: self::emptyObject(),
52
        ];
53
    }
54
}
55