Configuration::buildViewClassesNode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 47

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 47
rs 9.1563
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
/*
4
 * This file has been created by developers from BitBag.
5
 * Feel free to contact us once you face any issues or want to start
6
 * another great project.
7
 * You can find more information about us on https://bitbag.io and write us
8
 * an email on [email protected].
9
 */
10
11
declare(strict_types=1);
12
13
namespace BitBag\SyliusVueStorefrontPlugin\DependencyInjection;
14
15
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\ApplyCouponRequest;
16
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\CreateCartRequest;
17
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\DeleteCartRequest;
18
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\DeleteCouponRequest;
19
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\GetAppliedCouponRequest;
20
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\GetPaymentMethodsRequest;
21
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\GetShippingMethodsRequest;
22
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\PullCartRequest;
23
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\SetShippingInformationRequest;
24
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\SyncTotalsRequest;
25
use BitBag\SyliusVueStorefrontPlugin\Request\Cart\UpdateCartRequest;
26
use BitBag\SyliusVueStorefrontPlugin\Request\Order\CreateOrderRequest;
27
use BitBag\SyliusVueStorefrontPlugin\Request\Stock\CheckStockRequest;
28
use BitBag\SyliusVueStorefrontPlugin\Request\Stock\ListStocksRequest;
29
use BitBag\SyliusVueStorefrontPlugin\Request\User\ChangePasswordRequest;
30
use BitBag\SyliusVueStorefrontPlugin\Request\User\CreateUserRequest;
31
use BitBag\SyliusVueStorefrontPlugin\Request\User\GetOrderHistoryRequest;
32
use BitBag\SyliusVueStorefrontPlugin\Request\User\ResetPasswordRequest;
33
use BitBag\SyliusVueStorefrontPlugin\Request\User\UpdateUserRequest;
34
use BitBag\SyliusVueStorefrontPlugin\View\Cart\CartItem\ConfigurableItemOptionView;
35
use BitBag\SyliusVueStorefrontPlugin\View\Cart\CartItem\ProductOptionExtensionAttributeView;
36
use BitBag\SyliusVueStorefrontPlugin\View\Cart\CartItem\ProductOptionView;
37
use BitBag\SyliusVueStorefrontPlugin\View\Cart\CartItemView;
38
use BitBag\SyliusVueStorefrontPlugin\View\Cart\PaymentMethodView;
39
use BitBag\SyliusVueStorefrontPlugin\View\Cart\ShippingInformationView;
40
use BitBag\SyliusVueStorefrontPlugin\View\Cart\ShippingMethodsView;
41
use BitBag\SyliusVueStorefrontPlugin\View\Cart\Totals\RateView;
42
use BitBag\SyliusVueStorefrontPlugin\View\Cart\Totals\TaxGrandtotalDetailsView;
43
use BitBag\SyliusVueStorefrontPlugin\View\Cart\Totals\TotalSegmentExtensionAttributeView;
44
use BitBag\SyliusVueStorefrontPlugin\View\Cart\Totals\TotalSegmentView;
45
use BitBag\SyliusVueStorefrontPlugin\View\Cart\Totals\TotalsView;
46
use BitBag\SyliusVueStorefrontPlugin\View\Common\Address\RegionView;
47
use BitBag\SyliusVueStorefrontPlugin\View\Common\AddressView;
48
use BitBag\SyliusVueStorefrontPlugin\View\Common\SearchCriteria\FilterGroupView;
49
use BitBag\SyliusVueStorefrontPlugin\View\Common\SearchCriteria\FilterView;
50
use BitBag\SyliusVueStorefrontPlugin\View\Common\SearchCriteria\SearchCriteriaView;
51
use BitBag\SyliusVueStorefrontPlugin\View\GenericSuccessView;
52
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductCustomAttributeView;
53
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductListView;
54
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductPriceExtensionAttributeView;
55
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductPriceFormattedView;
56
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductPriceInfoView;
57
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductPriceView;
58
use BitBag\SyliusVueStorefrontPlugin\View\Product\ProductView;
59
use BitBag\SyliusVueStorefrontPlugin\View\Stock\StockView;
60
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistory\OrderExtensionAttributesView;
61
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistory\OrderView;
62
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistory\PaymentView;
63
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistory\ShippingAssignmentView;
64
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistory\ShippingTotalView;
65
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistory\ShippingView;
66
use BitBag\SyliusVueStorefrontPlugin\View\User\OrderHistoryView;
67
use BitBag\SyliusVueStorefrontPlugin\View\User\UserProfileView;
68
use BitBag\SyliusVueStorefrontPlugin\View\ValidationErrorView;
69
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
70
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
71
use Symfony\Component\Config\Definition\ConfigurationInterface;
72
73
final class Configuration implements ConfigurationInterface
74
{
75
    public function getConfigTreeBuilder(): TreeBuilder
76
    {
77
        $treeBuilder = new TreeBuilder('bitbag_sylius_vue_storefront_plugin');
78
79
        $rootNode = $treeBuilder->getRootNode();
80
81
        $this->buildViewClassesNode($rootNode);
82
        $this->buildRequestClassesNode($rootNode);
83
84
        return $treeBuilder;
85
    }
86
87
    private function buildViewClassesNode(ArrayNodeDefinition $rootNode): void
88
    {
89
        $rootNode
90
            ->addDefaultsIfNotSet()
91
            ->children()
92
            ->arrayNode('view_classes')
93
            ->addDefaultsIfNotSet()
94
            ->children()
95
            ->scalarNode('address')->defaultValue(AddressView::class)->end()
96
            ->scalarNode('cart_item')->defaultValue(CartItemView::class)->end()
97
            ->scalarNode('configurable_item_option')->defaultValue(ConfigurableItemOptionView::class)->end()
98
            ->scalarNode('filter')->defaultValue(FilterView::class)->end()
99
            ->scalarNode('filter_group')->defaultValue(FilterGroupView::class)->end()
100
            ->scalarNode('generic_success')->defaultValue(GenericSuccessView::class)->end()
101
            ->scalarNode('order')->defaultValue(OrderView::class)->end()
102
            ->scalarNode('order_extension_attributes')->defaultValue(OrderExtensionAttributesView::class)->end()
103
            ->scalarNode('order_history')->defaultValue(OrderHistoryView::class)->end()
104
            ->scalarNode('payment')->defaultValue(PaymentView::class)->end()
105
            ->scalarNode('payment_method')->defaultValue(PaymentMethodView::class)->end()
106
            ->scalarNode('product')->defaultValue(ProductView::class)->end()
107
            ->scalarNode('product_custom_attribute')->defaultValue(ProductCustomAttributeView::class)->end()
108
            ->scalarNode('product_list')->defaultValue(ProductListView::class)->end()
109
            ->scalarNode('product_option')->defaultValue(ProductOptionView::class)->end()
110
            ->scalarNode('product_option_extension_attribute')->defaultValue(ProductOptionExtensionAttributeView::class)->end()
111
            ->scalarNode('product_price')->defaultValue(ProductPriceView::class)->end()
112
            ->scalarNode('product_price_extension_attribute')->defaultValue(ProductPriceExtensionAttributeView::class)->end()
113
            ->scalarNode('product_price_formatted')->defaultValue(ProductPriceFormattedView::class)->end()
114
            ->scalarNode('product_price_info')->defaultValue(ProductPriceInfoView::class)->end()
115
            ->scalarNode('rate_view')->defaultValue(RateView::class)->end()
116
            ->scalarNode('region')->defaultValue(RegionView::class)->end()
117
            ->scalarNode('search_criteria')->defaultValue(SearchCriteriaView::class)->end()
118
            ->scalarNode('shipping')->defaultValue(ShippingView::class)->end()
119
            ->scalarNode('shipping_assignment')->defaultValue(ShippingAssignmentView::class)->end()
120
            ->scalarNode('shipping_information')->defaultValue(ShippingInformationView::class)->end()
121
            ->scalarNode('shipping_methods')->defaultValue(ShippingMethodsView::class)->end()
122
            ->scalarNode('shipping_total')->defaultValue(ShippingTotalView::class)->end()
123
            ->scalarNode('stock')->defaultValue(StockView::class)->end()
124
            ->scalarNode('tax_grandtotal_details')->defaultValue(TaxGrandtotalDetailsView::class)->end()
125
            ->scalarNode('total_segment')->defaultValue(TotalSegmentView::class)->end()
126
            ->scalarNode('total_segment_extension_attribute')->defaultValue(TotalSegmentExtensionAttributeView::class)->end()
127
            ->scalarNode('totals')->defaultValue(TotalsView::class)->end()
128
            ->scalarNode('user_profile')->defaultValue(UserProfileView::class)->end()
129
            ->scalarNode('validation_error')->defaultValue(ValidationErrorView::class)->end()
130
            ->end()
131
            ->end()
132
            ->end();
133
    }
134
135
    private function buildRequestClassesNode(ArrayNodeDefinition $rootNode): void
136
    {
137
        $rootNode
138
            ->addDefaultsIfNotSet()
139
            ->children()
140
            ->arrayNode('request_classes')
141
            ->addDefaultsIfNotSet()
142
            ->children()
143
            ->scalarNode('apply_coupon')->defaultValue(ApplyCouponRequest::class)->end()
144
            ->scalarNode('change_password')->defaultValue(ChangePasswordRequest::class)->end()
145
            ->scalarNode('check_stock')->defaultValue(CheckStockRequest::class)->end()
146
            ->scalarNode('create_cart')->defaultValue(CreateCartRequest::class)->end()
147
            ->scalarNode('create_order')->defaultValue(CreateOrderRequest::class)->end()
148
            ->scalarNode('create_user')->defaultValue(CreateUserRequest::class)->end()
149
            ->scalarNode('delete_cart')->defaultValue(DeleteCartRequest::class)->end()
150
            ->scalarNode('delete_coupon')->defaultValue(DeleteCouponRequest::class)->end()
151
            ->scalarNode('get_applied_coupon')->defaultValue(GetAppliedCouponRequest::class)->end()
152
            ->scalarNode('get_order_history')->defaultValue(GetOrderHistoryRequest::class)->end()
153
            ->scalarNode('get_payment_methods')->defaultValue(GetPaymentMethodsRequest::class)->end()
154
            ->scalarNode('get_shipping_methods')->defaultValue(GetShippingMethodsRequest::class)->end()
155
            ->scalarNode('list_stocks')->defaultValue(ListStocksRequest::class)->end()
156
            ->scalarNode('pull_cart')->defaultValue(PullCartRequest::class)->end()
157
            ->scalarNode('reset_password')->defaultValue(ResetPasswordRequest::class)->end()
158
            ->scalarNode('set_shipping_information')->defaultValue(SetShippingInformationRequest::class)->end()
159
            ->scalarNode('sync_totals')->defaultValue(SyncTotalsRequest::class)->end()
160
            ->scalarNode('update_cart')->defaultValue(UpdateCartRequest::class)->end()
161
            ->scalarNode('update_user')->defaultValue(UpdateUserRequest::class)->end()
162
            ->end()
163
            ->end()
164
            ->end();
165
    }
166
}
167