Completed
Push — develop ( 733115...529b46 )
by Baptiste
03:05
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 3
dl 0
loc 82
ccs 71
cts 71
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 76 1
1
<?php
2
declare(strict_types = 1);
3
4
namespace Innmind\Rest\ServerBundle\DependencyInjection;
5
6
use Innmind\Rest\Server\Action;
7
use Symfony\Component\Config\Definition\{
8
    Builder\TreeBuilder,
9
    Builder\NodeBuilder,
10
    ConfigurationInterface
11
};
12
13
final class Configuration implements ConfigurationInterface
14
{
15
    /**
16
     * {@inheritdoc}
17
     */
18 22
    public function getConfigTreeBuilder()
19
    {
20 22
        $treeBuilder = new TreeBuilder;
21 22
        $root = $treeBuilder->root('innmind_rest_server');
22
23
        $root
24 22
            ->children()
25 22
                ->arrayNode('types')
26 22
                    ->defaultValue([])
27 22
                    ->prototype('scalar')->end()
28 22
                ->end()
29 22
                ->arrayNode('accept')
30 22
                    ->info('The list of formats you accept in the "Accept" header')
31 22
                    ->useAttributeAsKey('name')
32 22
                    ->requiresAtLeastOneElement()
33 22
                    ->prototype('array')
34 22
                        ->children()
35 22
                            ->integerNode('priority')->end()
36 22
                            ->arrayNode('media_types')
37 22
                                ->useAttributeAsKey('name')
38 22
                                ->requiresAtLeastOneElement()
39 22
                                ->prototype('scalar')->end()
40 22
                            ->end()
41 22
                        ->end()
42 22
                    ->end()
43 22
                ->end()
44 22
                ->arrayNode('content_type')
45 22
                    ->info('The list of formats you support as content output')
46 22
                    ->useAttributeAsKey('name')
47 22
                    ->requiresAtLeastOneElement()
48 22
                    ->prototype('array')
49 22
                        ->children()
50 22
                            ->integerNode('priority')->end()
51 22
                            ->arrayNode('media_types')
52 22
                                ->useAttributeAsKey('name')
53 22
                                ->requiresAtLeastOneElement()
54 22
                                ->prototype('integer')->end()
55 22
                            ->end()
56 22
                        ->end()
57 22
                    ->end()
58 22
                ->end()
59 22
                ->scalarNode('specification_builder')
60 22
                    ->defaultValue('innmind_rest_server.specification_builder.default')
61 22
                ->end()
62 22
                ->scalarNode('range_extractor')
63 22
                    ->defaultValue('innmind_rest_server.range_extractor.delegation')
64 22
                ->end()
65 22
                ->arrayNode('response')
66 22
                    ->addDefaultsIfNotSet()
67 22
                    ->children()
68 22
                        ->arrayNode('header_builders')
69 22
                            ->addDefaultsIfNotSet()
70 22
                            ->children()
71 22
                                ->scalarNode(Action::LIST)
72 22
                                    ->defaultValue('innmind_rest_server.response.header_builder.list_delegation')
73 22
                                ->end()
74 22
                                ->scalarNode(Action::GET)
75 22
                                    ->defaultValue('innmind_rest_server.response.header_builder.get_delegation')
76 22
                                ->end()
77 22
                                ->scalarNode(Action::CREATE)
78 22
                                    ->defaultValue('innmind_rest_server.response.header_builder.create_delegation')
79 22
                                ->end()
80 22
                                ->scalarNode(Action::UPDATE)
81 22
                                    ->defaultValue('innmind_rest_server.response.header_builder.update_delegation')
82 22
                                ->end()
83 22
                                ->scalarNode(Action::REMOVE)
84 22
                                    ->defaultValue('innmind_rest_server.response.header_builder.remove_delegation')
85 22
                                ->end()
86 22
                            ->end()
87 22
                        ->end()
88 22
                    ->end()
89 22
                ->end()
90 22
            ->end();
91
92 22
        return $treeBuilder;
93
    }
94
}
95