RequestDefinitions   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 8
eloc 13
dl 0
loc 52
ccs 22
cts 22
cp 1
rs 10
c 1
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getRequestDefinition() 0 7 2
A __construct() 0 4 2
A unserialize() 0 4 1
A serialize() 0 4 1
A addRequestDefinition() 0 3 1
A getIterator() 0 3 1
1
<?php
2
namespace ElevenLabs\Api\Definition;
3
4
class RequestDefinitions implements \Serializable, \IteratorAggregate
5
{
6
    /**
7
     * @var array
8
     */
9
    private $definitions;
10 21
11
    public function __construct(array $requestDefinitions = [])
12 21
    {
13 16
        foreach ($requestDefinitions as $requestDefinition) {
14
            $this->addRequestDefinition($requestDefinition);
15 21
        }
16
    }
17
18
    /**
19
     * @param string $operationId
20 14
     *
21
     * @return RequestDefinition
22 14
     */
23 12
    public function getRequestDefinition($operationId)
24
    {
25
        if (!isset($this->definitions[$operationId])) {
26 2
            throw new \InvalidArgumentException('Unable to find request definition for operationId '.$operationId);
27
        }
28
29
        return $this->definitions[$operationId];
30 2
    }
31
32 2
    private function addRequestDefinition(RequestDefinition $requestDefinition)
33 1
    {
34
        $this->definitions[$requestDefinition->getOperationId()] = $requestDefinition;
35 2
    }
36
37
    /**
38 2
     * @return \ArrayIterator|RequestDefinition[]
39
     */
40 2
    public function getIterator()
41 2
    {
42
        return new \ArrayIterator($this->definitions);
43
    }
44
45
    public function serialize()
46 2
    {
47
        return serialize([
48 2
            'definitions' => $this->definitions
49 2
        ]);
50 2
    }
51
52 16
    public function unserialize($serialized)
53
    {
54 16
        $data = unserialize($serialized);
55 16
        $this->definitions = $data['definitions'];
56
    }
57
}
58