Completed
Pull Request — master (#3)
by Sullivan
04:18
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
lcom 0
cbo 3
dl 0
loc 50
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 44 1
1
<?php
2
3
namespace Nexy\PayboxDirect\Bundle\DependencyInjection;
4
5
use Nexy\PayboxDirect\Paybox;
6
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7
use Symfony\Component\Config\Definition\ConfigurationInterface;
8
9
/**
10
 * @author Sullivan Senechal <[email protected]>
11
 */
12
final class Configuration implements ConfigurationInterface
13
{
14
    /**
15
     * {@inheritdoc}
16
     */
17
    public function getConfigTreeBuilder()
18
    {
19
        $treeBuilder = new TreeBuilder();
20
        $rootNode = $treeBuilder->root('nexy_paybox_direct');
21
22
        $rootNode
23
            ->children()
24
                ->arrayNode('client')
25
                    ->addDefaultsIfNotSet()
26
                    ->children()
27
                        ->integerNode('timeout')->defaultValue(Paybox::DEFAULT_TIMEOUT)->end()
28
                        ->booleanNode('production')->defaultValue(Paybox::DEFAULT_PRODUCTION)->end()
29
                    ->end()
30
                ->end()
31
                ->arrayNode('paybox')
32
                    ->isRequired()
33
                    ->addDefaultsIfNotSet()
34
                    ->children()
35
                        ->scalarNode('version')
36
                            ->isRequired()
37
                            ->cannotBeEmpty()
38
                            ->validate()
39
                                ->ifNotInArray(array_keys(Paybox::VERSIONS))
40
                                ->thenInvalid('Invalid Paybox version')
41
                            ->end()
42
                        ->end()
43
                        ->scalarNode('site')->isRequired()->cannotBeEmpty()->end()
44
                        ->scalarNode('rang')->isRequired()->cannotBeEmpty()->end()
45
                        ->scalarNode('identifiant')->isRequired()->cannotBeEmpty()->end()
46
                        ->scalarNode('cle')->isRequired()->cannotBeEmpty()->end()
47
                        ->scalarNode('devise')
48
                            ->defaultValue(array_search(Paybox::DEFAULT_DEVISE, Paybox::DEVISES))
49
                            ->validate()
50
                                ->ifNotInArray(array_keys(Paybox::DEVISES))
51
                                ->thenInvalid('Invalid Paybox version')
52
                            ->end()
53
                        ->end()
54
                    ->end()
55
                ->end()
56
            ->end()
57
        ;
58
59
        return $treeBuilder;
60
    }
61
}
62