Configuration::getConfigTreeBuilder()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1.0028

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 6
cts 7
cp 0.8571
rs 9.8666
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1.0028
1
<?php
2
3
namespace Happyr\GoogleSiteAuthenticatorBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8
/**
9
 * This is the class that validates and merges configuration from your app/config files.
10
 */
11
class Configuration implements ConfigurationInterface
12
{
13
    /**
14
     * {@inheritdoc}
15
     */
16 2
    public function getConfigTreeBuilder()
17
    {
18 2
        $treeBuilder = new TreeBuilder('happyr_google_site_authenticator');
19
        $root = $treeBuilder->getRootNode();
20 2
        
21
        $root->children()
22
            ->scalarNode('cache_service')->cannotBeEmpty()->end()
23 2
            ->append($this->getTokenNode())
24
        ->end();
25
26 2
        return $treeBuilder;
27 2
    }
28 2
29 2
    /**
30
     * @return \Symfony\Component\Config\Definition\Builder\NodeDefinition
31 2
     */
32
    private function getTokenNode()
33
    {
34
        $treeBuilder = new TreeBuilder('tokens');
35
        $node = $treeBuilder->getRootNode();
36
        $node
37 2
            ->isRequired()
38
            ->requiresAtLeastOneElement()
39 2
            ->useAttributeAsKey('name')
40 2
            ->prototype('array')
41
            ->children()
42 2
                ->scalarNode('client_id')->isRequired()->end()
43 2
                ->scalarNode('client_secret')->isRequired()->end()
44 2
                ->scalarNode('redirect_url')->isRequired()->end()
45 2
                ->variableNode('scopes')->end()
46 2
            ->end()
47 2
        ->end();
48 2
49 2
        return $node;
50 2
    }
51
}
52