Passed
Pull Request — dev (#9)
by Andrey
07:26 queued 03:28
created

AmazonPayBusinessFactory   A

Complexity

Total Complexity 20

Size/Duplication

Total Lines 189
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 189
rs 10
c 0
b 0
f 0
wmc 20

20 Methods

Rating   Name   Duplication   Size   Complexity  
A createQuoteUpdateFactory() 0 5 1
A getShipmentFacade() 0 3 1
A createAmazonpayConfig() 0 3 1
A createAmazonpayTransferToEntityConverter() 0 3 1
A createIpnFactory() 0 7 1
A getRefundFacade() 0 3 1
A createTransactionLogger() 0 3 1
A getMoneyFacade() 0 3 1
A createAmazonpayOrderInfoHydrator() 0 4 1
A getUtilEncodingService() 0 3 1
A createRefundOrderModel() 0 3 1
A createConverterFactory() 0 3 1
A createPaymentProcessorModel() 0 5 1
A getSalesFacade() 0 4 1
A createAmazonpayConverter() 0 3 1
A createRelatedItemsUpdateModel() 0 5 1
A createOrderSaver() 0 3 1
A createTransactionFactory() 0 10 1
A getOmsFacade() 0 3 1
A createAdapterFactory() 0 6 1
1
<?php
2
3
/**
4
 * Apache OSL-2
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\AmazonPay\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Shared\AmazonPay\AmazonPayConfig;
12
use SprykerEco\Zed\AmazonPay\AmazonPayDependencyProvider;
13
use SprykerEco\Zed\AmazonPay\Business\Api\Adapter\AdapterFactory;
14
use SprykerEco\Zed\AmazonPay\Business\Api\Converter\ConverterFactory;
15
use SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayConverter;
16
use SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayTransferToEntityConverter;
17
use SprykerEco\Zed\AmazonPay\Business\Order\AmazonpayOrderInfoHydrator;
18
use SprykerEco\Zed\AmazonPay\Business\Order\PaymentProcessorModel;
19
use SprykerEco\Zed\AmazonPay\Business\Order\RefundOrderModel;
20
use SprykerEco\Zed\AmazonPay\Business\Order\RelatedItemsUpdateModel;
21
use SprykerEco\Zed\AmazonPay\Business\Order\Saver;
22
use SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Ipn\IpnFactory;
23
use SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\Logger\TransactionLogger;
24
use SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\TransactionFactory;
25
use SprykerEco\Zed\AmazonPay\Business\Quote\QuoteUpdateFactory;
26
27
/**
28
 * @method \SprykerEco\Zed\AmazonPay\Persistence\AmazonPayQueryContainer getQueryContainer()
29
 */
30
class AmazonPayBusinessFactory extends AbstractBusinessFactory
31
{
32
    /**
33
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\TransactionFactoryInterface
34
     */
35
    public function createTransactionFactory()
36
    {
37
        return new TransactionFactory(
38
            $this->createAdapterFactory(),
39
            $this->createAmazonpayConfig(),
40
            $this->createTransactionLogger(),
41
            $this->createAmazonpayConverter(),
42
            $this->createAmazonpayTransferToEntityConverter(),
43
            $this->createRefundOrderModel(),
44
            $this->createPaymentProcessorModel()
45
        );
46
    }
47
48
    /**
49
     * @return \SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface
50
     */
51
    public function createAmazonpayConfig()
52
    {
53
        return new AmazonPayConfig();
54
    }
55
56
    /**
57
     * @return \SprykerEco\Zed\AmazonPay\Business\Quote\QuoteUpdateFactoryInterface
58
     */
59
    public function createQuoteUpdateFactory()
60
    {
61
        return new QuoteUpdateFactory(
62
            $this->createAdapterFactory(),
63
            $this->getShipmentFacade()
64
        );
65
    }
66
67
    /**
68
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Ipn\IpnFactoryInterface
69
     */
70
    public function createIpnFactory()
71
    {
72
        return new IpnFactory(
73
            $this->getOmsFacade(),
74
            $this->getQueryContainer(),
75
            $this->getUtilEncodingService(),
76
            $this->createRefundOrderModel()
77
        );
78
    }
79
80
    /**
81
     * @return \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToRefundInterface
82
     */
83
    public function getRefundFacade()
84
    {
85
        return $this->getProvidedDependency(AmazonPayDependencyProvider::FACADE_REFUND);
86
    }
87
88
    /**
89
     * @return \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToMoneyInterface
90
     */
91
    protected function getMoneyFacade()
92
    {
93
        return $this->getProvidedDependency(AmazonPayDependencyProvider::FACADE_MONEY);
94
    }
95
96
    /**
97
     * @return \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToOmsInterface
98
     */
99
    protected function getOmsFacade()
100
    {
101
        return $this->getProvidedDependency(AmazonPayDependencyProvider::FACADE_OMS);
102
    }
103
104
    /**
105
     * @return \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToShipmentInterface
106
     */
107
    protected function getShipmentFacade()
108
    {
109
        return $this->getProvidedDependency(AmazonPayDependencyProvider::FACADE_SHIPMENT);
110
    }
111
112
    /**
113
     * @return \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToUtilEncodingInterface
114
     */
115
    protected function getUtilEncodingService()
116
    {
117
        return $this->getProvidedDependency(AmazonPayDependencyProvider::SERVICE_UTIL_ENCODING);
118
    }
119
120
   /**
121
    * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\AdapterFactoryInterface
122
    */
123
    public function createAdapterFactory()
124
    {
125
        return new AdapterFactory(
126
            $this->createAmazonpayConfig(),
127
            $this->createConverterFactory(),
128
            $this->getMoneyFacade()
129
        );
130
    }
131
132
    /**
133
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Converter\ConverterFactoryInterface
134
     */
135
    protected function createConverterFactory()
136
    {
137
        return new ConverterFactory();
138
    }
139
140
    /**
141
     * @return \SprykerEco\Zed\AmazonPay\Business\Order\SaverInterface
142
     */
143
    public function createOrderSaver()
144
    {
145
        return new Saver();
146
    }
147
148
    /**
149
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\Logger\TransactionLoggerInterface
150
     */
151
    public function createTransactionLogger()
152
    {
153
        return new TransactionLogger($this->createAmazonpayConfig());
154
    }
155
156
    /**
157
     * @return \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToSalesInterface
158
     */
159
    public function getSalesFacade()
160
    {
161
        return $this->getProvidedDependency(
162
            AmazonPayDependencyProvider::FACADE_SALES
163
        );
164
    }
165
166
    /**
167
     * @return \SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayConverterInterface
168
     */
169
    protected function createAmazonpayConverter()
170
    {
171
        return new AmazonPayConverter();
172
    }
173
174
    /**
175
     * @return \SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayTransferToEntityConverterInterface
176
     */
177
    protected function createAmazonpayTransferToEntityConverter()
178
    {
179
        return new AmazonPayTransferToEntityConverter();
180
    }
181
182
    /**
183
     * @return \SprykerEco\Zed\AmazonPay\Business\Order\RefundOrderInterface
184
     */
185
    protected function createRefundOrderModel()
186
    {
187
        return new RefundOrderModel($this->getRefundFacade());
188
    }
189
190
    /**
191
     * @return \SprykerEco\Zed\AmazonPay\Business\Order\AmazonpayOrderInfoHydratorInterface
192
     */
193
    public function createAmazonpayOrderInfoHydrator()
194
    {
195
        return new AmazonpayOrderInfoHydrator(
196
            $this->getQueryContainer()
197
        );
198
    }
199
200
    /**
201
     * @return \SprykerEco\Zed\AmazonPay\Business\Order\RelatedItemsUpdateInterface
202
     */
203
    public function createRelatedItemsUpdateModel()
204
    {
205
        return new RelatedItemsUpdateModel(
206
            $this->getQueryContainer(),
207
            $this->getOmsFacade()
208
        );
209
    }
210
211
    /**
212
     * @return \SprykerEco\Zed\AmazonPay\Business\Order\PaymentProcessorInterface
213
     */
214
    public function createPaymentProcessorModel()
215
    {
216
        return new PaymentProcessorModel(
217
            $this->getQueryContainer(),
218
            $this->createAmazonpayTransferToEntityConverter()
219
        );
220
    }
221
}
222