Completed
Pull Request — master (#13)
by
unknown
03:40
created

ConstraintViolations::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace ElevenLabs\Api\Service\Exception;
4
5
use ElevenLabs\Api\Validator\ConstraintViolation;
6
7
/**
8
 * Class ConstraintViolations.
9
 */
10
class ConstraintViolations extends ApiServiceError
11
{
12
    /**
13
     * @var array|ConstraintViolation[]
14
     */
15
    private $violations;
16
17
    /**
18
     * @param ConstraintViolation[] $violations
19
     */
20 7
    public function __construct(array $violations)
21
    {
22 7
        $this->violations = $violations;
23 7
        $this->message = $this->__toString();
24 7
        parent::__construct();
25 7
    }
26
27
    /**
28
     * @return array|ConstraintViolation[]
29
     */
30
    public function getViolations()
31
    {
32
        return $this->violations;
33
    }
34
35
    /**
36
     * @return string
37
     */
38 7
    public function __toString()
39
    {
40 7
        $message = "Request constraint violations:\n";
41 7
        foreach ($this->violations as $violation) {
42 4
            $message .= sprintf(
43 4
                "[property]: %s\n[message]: %s\n[constraint]: %s\n[location]: %s\n\n",
44 4
                $violation->getProperty(),
45 4
                $violation->getMessage(),
46 4
                $violation->getConstraint(),
47 4
                $violation->getLocation()
48
            );
49
        }
50
51 7
        return $message;
52
    }
53
}
54