Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Completed
Pull Request — master (#288)
by Jérémiah
15:48
created

CustomScalarType::assertValid()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 21
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 3

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 21
ccs 14
cts 14
cp 1
rs 9.3142
cc 3
eloc 14
nc 3
nop 0
crap 3
1
<?php
2
3
namespace Overblog\GraphQLBundle\Definition\Type;
4
5
use GraphQL\Type\Definition\CustomScalarType as BaseCustomScalarType;
6
use GraphQL\Type\Definition\ScalarType;
7
use GraphQL\Utils\Utils;
8
9
class CustomScalarType extends BaseCustomScalarType
10
{
11 23
    public function __construct(array $config = [])
12
    {
13 23
        $config['name'] = isset($config['name']) ? $config['name'] : uniqid('CustomScalar');
14 23
        parent::__construct($config);
15
16 23
        $this->config['scalarType'] = isset($this->config['scalarType']) ? $this->config['scalarType'] : null;
17 23
    }
18
19
    /**
20
     * {@inheritdoc}
21
     */
22 8
    public function serialize($value)
23
    {
24 8
        return $this->call('serialize', $value);
25
    }
26
27
    /**
28
     * {@inheritdoc}
29
     */
30 7
    public function parseValue($value)
31
    {
32 7
        return $this->call('parseValue', $value);
33
    }
34
35
    /**
36
     * {@inheritdoc}
37
     */
38 5
    public function parseLiteral(/* GraphQL\Language\AST\ValueNode */ $valueNode)
39
    {
40 5
        return $this->call('parseLiteral', $valueNode);
41
    }
42
43 12
    private function call($type, $value)
44
    {
45 12
        if (isset($this->config['scalarType'])) {
46 9
            $scalarType = $this->config['scalarType'];
47 9
            $scalarType = is_callable($scalarType) ? $scalarType() : $scalarType;
48
49 9
            return call_user_func([$scalarType, $type], $value);
50
        } else {
51 3
            return parent::$type($value);
52
        }
53
    }
54
55 19
    public function assertValid()
56
    {
57 19
        if (isset($this->config['scalarType'])) {
58 16
            $scalarType = $this->config['scalarType'];
59 16
            if (is_callable($scalarType)) {
60 14
                $scalarType = $scalarType();
61
            }
62
63 16
            Utils::invariant(
64 16
                $scalarType instanceof ScalarType,
65 16
                sprintf(
66 16
                    '%s must provide a valid "scalarType" instance of %s but got: %s',
67 16
                    $this->name,
68 16
                    ScalarType::class,
69 16
                    Utils::printSafe($scalarType)
70
                )
71
            );
72
        } else {
73 3
            parent::assertValid();
74
        }
75 14
    }
76
}
77