Failed Conditions
Pull Request — master (#188)
by Kamil
04:26
created

Configuration   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 3
dl 0
loc 65
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getConfigTreeBuilder() 0 10 1
A buildIncludedAttributesNode() 0 10 1
B buildViewClassesNode() 0 37 1
1
<?php
2
3
namespace Sylius\ShopApiPlugin\DependencyInjection;
4
5
use Sylius\ShopApiPlugin\View;
6
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
7
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
8
use Symfony\Component\Config\Definition\ConfigurationInterface;
9
10
final class Configuration implements ConfigurationInterface
11
{
12
    /**
13
     * {@inheritdoc}
14
     */
15
    public function getConfigTreeBuilder()
16
    {
17
        $treeBuilder = new TreeBuilder();
18
        $rootNode = $treeBuilder->root('shop_api');
19
20
        $this->buildIncludedAttributesNode($rootNode);
21
        $this->buildViewClassesNode($rootNode);
22
23
        return $treeBuilder;
24
    }
25
26
    private function buildIncludedAttributesNode(ArrayNodeDefinition $rootNode): void
27
    {
28
        $rootNode
29
            ->children()
30
                ->arrayNode('included_attributes')
31
                    ->prototype('scalar')->end()
32
                ->end()
33
            ->end()
34
        ;
35
    }
36
37
    private function buildViewClassesNode(ArrayNodeDefinition $rootNode): void
38
    {
39
        $rootNode
40
            ->addDefaultsIfNotSet()
41
            ->children()
42
                ->arrayNode('view_classes')
43
                    ->addDefaultsIfNotSet()
44
                    ->children()
45
                        ->scalarNode('address')->defaultValue(View\AddressView::class)->end()
46
                        ->scalarNode('adjustment')->defaultValue(View\AdjustmentView::class)->end()
47
                        ->scalarNode('cart_item')->defaultValue(View\ItemView::class)->end()
48
                        ->scalarNode('cart_summary')->defaultValue(View\CartSummaryView::class)->end()
49
                        ->scalarNode('estimated_shipping_cost')->defaultValue(View\EstimatedShippingCostView::class)->end()
50
                        ->scalarNode('image')->defaultValue(View\ImageView::class)->end()
51
                        ->scalarNode('page')->defaultValue(View\PageView::class)->end()
52
                        ->scalarNode('page_links')->defaultValue(View\PageLinksView::class)->end()
53
                        ->scalarNode('payment')->defaultValue(View\PaymentView::class)->end()
54
                        ->scalarNode('payment_method')->defaultValue(View\PaymentMethodView::class)->end()
55
                        ->scalarNode('price')->defaultValue(View\PriceView::class)->end()
56
                        ->scalarNode('product')->defaultValue(View\ProductView::class)->end()
57
                        ->scalarNode('product_attribute_value')->defaultValue(View\ProductAttributeValueView::class)->end()
58
                        ->scalarNode('product_review')->defaultValue(View\ProductReviewView::class)->end()
59
                        ->scalarNode('product_taxon')->defaultValue(View\ProductTaxonView::class)->end()
60
                        ->scalarNode('product_variant')->defaultValue(View\ProductVariantView::class)->end()
61
                        ->scalarNode('shipment')->defaultValue(View\ShipmentView::class)->end()
62
                        ->scalarNode('shipping_method')->defaultValue(View\ShippingMethodView::class)->end()
63
                        ->scalarNode('taxon')->defaultValue(View\TaxonView::class)->end()
64
                        ->scalarNode('taxon_details')->defaultValue(View\TaxonDetailsView::class)->end()
65
                        ->scalarNode('totals')->defaultValue(View\TotalsView::class)->end()
66
                        ->scalarNode('validation_error')->defaultValue(View\ValidationErrorView::class)->end()
67
                        ->scalarNode('variant_option')->defaultValue(View\VariantOptionView::class)->end()
68
                        ->scalarNode('variant_option_value')->defaultValue(View\VariantOptionValueView::class)->end()
69
                    ->end()
70
                ->end()
71
            ->end()
72
        ;
73
    }
74
}
75