Completed
Push — master ( a73fad...f8ec74 )
by Baptiste
02:31
created

Configuration   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 88
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 88
ccs 77
cts 77
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B getConfigTreeBuilder() 0 82 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 30
    public function getConfigTreeBuilder()
19
    {
20 30
        $treeBuilder = new TreeBuilder;
21 30
        $root = $treeBuilder->root('innmind_rest_server');
22
23
        $root
24 30
            ->children()
25 30
                ->arrayNode('types')
26 30
                    ->defaultValue([])
27 30
                    ->prototype('scalar')->end()
28 30
                ->end()
29 30
                ->arrayNode('accept')
30 30
                    ->info('The list of formats you accept in the "Accept" header')
31 30
                    ->useAttributeAsKey('name')
32 30
                    ->requiresAtLeastOneElement()
33 30
                    ->prototype('array')
34 30
                        ->children()
35 30
                            ->integerNode('priority')->end()
36 30
                            ->arrayNode('media_types')
37 30
                                ->useAttributeAsKey('name')
38 30
                                ->requiresAtLeastOneElement()
39 30
                                ->prototype('scalar')->end()
40 30
                            ->end()
41 30
                        ->end()
42 30
                    ->end()
43 30
                ->end()
44 30
                ->arrayNode('content_type')
45 30
                    ->info('The list of formats you support as content output')
46 30
                    ->useAttributeAsKey('name')
47 30
                    ->requiresAtLeastOneElement()
48 30
                    ->prototype('array')
49 30
                        ->children()
50 30
                            ->integerNode('priority')->end()
51 30
                            ->arrayNode('media_types')
52 30
                                ->useAttributeAsKey('name')
53 30
                                ->requiresAtLeastOneElement()
54 30
                                ->prototype('integer')->end()
55 30
                            ->end()
56 30
                        ->end()
57 30
                    ->end()
58 30
                ->end()
59 30
                ->scalarNode('specification_builder')
60 30
                    ->defaultValue('innmind_rest_server.specification_builder.default')
61 30
                ->end()
62 30
                ->scalarNode('range_extractor')
63 30
                    ->defaultValue('innmind_rest_server.range_extractor.delegation')
64 30
                ->end()
65 30
                ->arrayNode('response')
66 30
                    ->addDefaultsIfNotSet()
67 30
                    ->children()
68 30
                        ->arrayNode('header_builders')
69 30
                            ->addDefaultsIfNotSet()
70 30
                            ->children()
71 30
                                ->scalarNode(Action::LIST)
72 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.list_delegation')
73 30
                                ->end()
74 30
                                ->scalarNode(Action::GET)
75 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.get_delegation')
76 30
                                ->end()
77 30
                                ->scalarNode(Action::CREATE)
78 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.create_delegation')
79 30
                                ->end()
80 30
                                ->scalarNode(Action::UPDATE)
81 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.update_delegation')
82 30
                                ->end()
83 30
                                ->scalarNode(Action::REMOVE)
84 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.remove_delegation')
85 30
                                ->end()
86 30
                                ->scalarNode(Action::LINK)
87 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.link_delegation')
88 30
                                ->end()
89 30
                                ->scalarNode(Action::UNLINK)
90 30
                                    ->defaultValue('innmind_rest_server.response.header_builder.unlink_delegation')
91 30
                                ->end()
92 30
                            ->end()
93 30
                        ->end()
94 30
                    ->end()
95 30
                ->end()
96 30
            ->end();
97
98 30
        return $treeBuilder;
99
    }
100
}
101