Failed Conditions
Pull Request — master (#247)
by
unknown
02:26
created

Configuration::buildAutoPickupCartNode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 7
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Sylius\ShopApiPlugin\DependencyInjection;
6
7
use Sylius\ShopApiPlugin\View;
8
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
9
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
10
use Symfony\Component\Config\Definition\ConfigurationInterface;
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('shop_api');
21
22
        $this->buildIncludedAttributesNode($rootNode);
23
        $this->buildAutoPickupCartNode($rootNode);
24
        $this->buildViewClassesNode($rootNode);
25
26
        return $treeBuilder;
27
    }
28
29
    private function buildIncludedAttributesNode(ArrayNodeDefinition $rootNode): void
30
    {
31
        $rootNode
32
            ->children()
33
                ->arrayNode('included_attributes')
34
                    ->prototype('scalar')->end()
35
                ->end()
36
            ->end()
37
        ;
38
    }
39
40
    private function buildAutoPickupCartNode(ArrayNodeDefinition $rootNode): void
41
    {
42
        $rootNode
43
            ->children()
44
                ->booleanNode('auto_pickup_cart')
45
                    ->defaultFalse()
46
                ->end()
47
            ->end()
48
        ;
49
    }
50
51
    private function buildViewClassesNode(ArrayNodeDefinition $rootNode): void
52
    {
53
        $rootNode
54
            ->addDefaultsIfNotSet()
55
            ->children()
56
                ->arrayNode('view_classes')
57
                    ->addDefaultsIfNotSet()
58
                    ->children()
59
                        ->scalarNode('address')->defaultValue(View\AddressView::class)->end()
60
                        ->scalarNode('adjustment')->defaultValue(View\AdjustmentView::class)->end()
61
                        ->scalarNode('cart_item')->defaultValue(View\ItemView::class)->end()
62
                        ->scalarNode('cart_summary')->defaultValue(View\CartSummaryView::class)->end()
63
                        ->scalarNode('customer')->defaultValue(View\CustomerView::class)->end()
64
                        ->scalarNode('estimated_shipping_cost')->defaultValue(View\EstimatedShippingCostView::class)->end()
65
                        ->scalarNode('image')->defaultValue(View\ImageView::class)->end()
66
                        ->scalarNode('page')->defaultValue(View\PageView::class)->end()
67
                        ->scalarNode('page_links')->defaultValue(View\PageLinksView::class)->end()
68
                        ->scalarNode('payment')->defaultValue(View\PaymentView::class)->end()
69
                        ->scalarNode('payment_method')->defaultValue(View\PaymentMethodView::class)->end()
70
                        ->scalarNode('price')->defaultValue(View\PriceView::class)->end()
71
                        ->scalarNode('product')->defaultValue(View\ProductView::class)->end()
72
                        ->scalarNode('product_attribute_value')->defaultValue(View\ProductAttributeValueView::class)->end()
73
                        ->scalarNode('product_review')->defaultValue(View\ProductReviewView::class)->end()
74
                        ->scalarNode('product_taxon')->defaultValue(View\ProductTaxonView::class)->end()
75
                        ->scalarNode('product_variant')->defaultValue(View\ProductVariantView::class)->end()
76
                        ->scalarNode('shipment')->defaultValue(View\ShipmentView::class)->end()
77
                        ->scalarNode('shipping_method')->defaultValue(View\ShippingMethodView::class)->end()
78
                        ->scalarNode('taxon')->defaultValue(View\TaxonView::class)->end()
79
                        ->scalarNode('taxon_details')->defaultValue(View\TaxonDetailsView::class)->end()
80
                        ->scalarNode('totals')->defaultValue(View\TotalsView::class)->end()
81
                        ->scalarNode('validation_error')->defaultValue(View\ValidationErrorView::class)->end()
82
                        ->scalarNode('variant_option')->defaultValue(View\VariantOptionView::class)->end()
83
                        ->scalarNode('variant_option_value')->defaultValue(View\VariantOptionValueView::class)->end()
84
                    ->end()
85
                ->end()
86
            ->end()
87
        ;
88
    }
89
}
90