RequestDefinitions::getIterator()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
c 1
b 0
f 0
cc 1
nc 1
nop 0
crap 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