Failed Conditions
Pull Request — release/1.0.0 (#2)
by Yo
03:36
created

StringDocHelper   A

Complexity

Total Complexity 21

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 35
ccs 24
cts 24
cp 1
rs 10
c 0
b 0
f 0
wmc 21

1 Method

Rating   Name   Duplication   Size   Complexity  
D append() 0 29 21
1
<?php
2
namespace Yoanm\JsonRpcParamsSymfonyConstraintDoc\App\Helper;
3
4
use Symfony\Component\Validator\Constraint;
5
use Symfony\Component\Validator\Constraints as Assert;
6
use Yoanm\JsonRpcServerDoc\Domain\Model\Type\StringDoc;
7
use Yoanm\JsonRpcServerDoc\Domain\Model\Type\TypeDoc;
8
9
/**
10
 * Class StringDocHelper
11
 */
12
class StringDocHelper
13
{
14
    /**
15
     * @param TypeDoc $doc
16
     * @param Constraint $constraint
17
     */
18 20
    public function append(TypeDoc $doc, Constraint $constraint)
19
    {
20
        // If format already defined or type is defined and is not a string nor scalar => give up
21 20
        if (!$doc instanceof StringDoc) {
22 1
            return;
23
        }
24
25
        switch (true) {
26 19
            case $constraint instanceof Assert\Bic:
27 18
            case $constraint instanceof Assert\CardScheme:
28 17
            case $constraint instanceof Assert\Country:
29 16
            case $constraint instanceof Assert\Currency:
30 15
            case $constraint instanceof Assert\Date:
31 14
            case $constraint instanceof Assert\DateTime:
32 13
            case $constraint instanceof Assert\Email:
33 12
            case $constraint instanceof Assert\File:
34 11
            case $constraint instanceof Assert\Iban:
35 10
            case $constraint instanceof Assert\Ip:
36 9
            case $constraint instanceof Assert\Isbn:
37 8
            case $constraint instanceof Assert\Issn:
38 7
            case $constraint instanceof Assert\Language:
39 6
            case $constraint instanceof Assert\Locale:
40 5
            case $constraint instanceof Assert\Luhn:
41 4
            case $constraint instanceof Assert\Regex:
42 3
            case $constraint instanceof Assert\Time:
43 2
            case $constraint instanceof Assert\Url:
44 1
            case $constraint instanceof Assert\Uuid:
45 19
                $doc->setFormat(lcfirst((new \ReflectionClass($constraint))->getShortName()));
46 19
                break;
47
        }
48 19
    }
49
}
50