Completed
Pull Request — master (#20)
by Woody
02:17 queued 12s
created

ResponseDefinition::getStatusCode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php declare(strict_types=1);
2
3
namespace ElevenLabs\Api\Definition;
4
5
use stdClass;
6
7
class ResponseDefinition implements \Serializable, MessageDefinition
8
{
9
    /** @var int|string */
10
    private $statusCode;
11
12
    /** @var string[] */
13
    private $contentTypes;
14
15
    /** @var Parameters */
16
    private $parameters;
17
18
    /**
19
     * @param int|string $statusCode
20
     * @param string[] $allowedContentTypes
21
     */
22 1
    public function __construct($statusCode, array $allowedContentTypes, Parameters $parameters)
23
    {
24 1
        $this->statusCode = $statusCode;
25 1
        $this->contentTypes = $allowedContentTypes;
26 1
        $this->parameters = $parameters;
27 1
    }
28
29
    /**
30
     * @return int|string
31
     */
32
    public function getStatusCode()
33
    {
34
        return $this->statusCode;
35
    }
36
37
    public function hasBodySchema(): bool
38
    {
39
        return $this->parameters->hasBodySchema();
40
    }
41
42
    public function getBodySchema(): ?stdClass
43
    {
44
        return $this->parameters->getBodySchema();
45
    }
46
47
    public function hasHeadersSchema(): bool
48
    {
49
        return $this->parameters->hasHeadersSchema();
50
    }
51
52
    public function getHeadersSchema(): ?stdClass
53
    {
54
        return $this->parameters->getHeadersSchema();
55
    }
56
57
    /**
58
     * Supported response types.
59
     *
60
     * @return string[]
61
     */
62
    public function getContentTypes(): array
63
    {
64
        return $this->contentTypes;
65
    }
66
67
    // Serializable
68 1
    public function serialize()
69
    {
70 1
        return serialize([
71 1
            'statusCode' => $this->statusCode,
72 1
            'contentTypes' => $this->contentTypes,
73 1
            'parameters' => $this->parameters
74
        ]);
75
    }
76
77
    // Serializable
78 1
    public function unserialize($serialized)
79
    {
80 1
        $data = unserialize($serialized);
81 1
        $this->statusCode = $data['statusCode'];
82 1
        $this->contentTypes = $data['contentTypes'];
83 1
        $this->parameters = $data['parameters'];
84 1
    }
85
}
86