Passed
Branch feature/ECO-808-scrutinizer (bde35b)
by Andrey
07:45
created

AmazonpayBusinessFactory   A

Complexity

Total Complexity 18

Size/Duplication

Total Lines 171
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 171
rs 10
c 0
b 0
f 0
wmc 18

18 Methods

Rating   Name   Duplication   Size   Complexity  
A createTransactionLogger() 0 3 1
A getSalesFacade() 0 4 1
A createTransactionFactory() 0 10 1
A createAmazonpayConverter() 0 3 1
A getMessengerFacade() 0 4 1
A createRefundOrderModel() 0 3 1
A createIpnFactory() 0 7 1
A createAdapterFactory() 0 6 1
A getRefundFacade() 0 3 1
A getShipmentFacade() 0 3 1
A getMoneyFacade() 0 3 1
A getUtilEncodingService() 0 3 1
A createOrderSaver() 0 3 1
A createAmazonpayTransferToEntityConverter() 0 3 1
A createQuoteUpdateFactory() 0 7 1
A createConverterFactory() 0 3 1
A getOmsFacade() 0 3 1
A createAmazonpayConfig() 0 3 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\RefundOrderModel;
18
use SprykerEco\Zed\Amazonpay\Business\Order\Saver;
19
use SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Ipn\IpnFactory;
20
use SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\Logger\TransactionLogger;
21
use SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\TransactionFactory;
22
use SprykerEco\Zed\Amazonpay\Business\Quote\QuoteUpdateFactory;
23
24
/**
25
 * @method \SprykerEco\Zed\Amazonpay\Persistence\AmazonpayQueryContainer getQueryContainer()
26
 */
27
class AmazonpayBusinessFactory extends AbstractBusinessFactory
28
{
29
30
    /**
31
     * @return \SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\TransactionFactoryInterface
32
     */
33
    public function createTransactionFactory()
34
    {
35
        return new TransactionFactory(
36
            $this->createAdapterFactory(),
37
            $this->createAmazonpayConfig(),
38
            $this->createTransactionLogger(),
39
            $this->getQueryContainer(),
40
            $this->createAmazonpayConverter(),
41
            $this->createAmazonpayTransferToEntityConverter(),
42
            $this->createRefundOrderModel()
43
        );
44
    }
45
46
    /**
47
     * @return \SprykerEco\Shared\Amazonpay\AmazonpayConfigInterface
48
     */
49
    public function createAmazonpayConfig()
50
    {
51
        return new AmazonpayConfig();
52
    }
53
54
    /**
55
     * @return \SprykerEco\Zed\Amazonpay\Business\Quote\QuoteUpdateFactoryInterface
56
     */
57
    public function createQuoteUpdateFactory()
58
    {
59
        return new QuoteUpdateFactory(
60
            $this->createAdapterFactory(),
61
            $this->createAmazonpayConfig(),
62
            $this->getShipmentFacade(),
63
            $this->getMessengerFacade()
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()->getErrorReportLevel());
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\Dependency\Facade\AmazonpayToMessengerInterface
168
     */
169
    protected function getMessengerFacade()
170
    {
171
        return $this->getProvidedDependency(
172
            AmazonpayDependencyProvider::FACADE_MESSENGER
173
        );
174
    }
175
176
    /**
177
     * @return \SprykerEco\Zed\Amazonpay\Business\Converter\AmazonpayConverterInterface
178
     */
179
    protected function createAmazonpayConverter()
180
    {
181
        return new AmazonpayConverter();
182
    }
183
184
    /**
185
     * @return \SprykerEco\Zed\Amazonpay\Business\Converter\AmazonpayTransferToEntityConverterInterface
186
     */
187
    protected function createAmazonpayTransferToEntityConverter()
188
    {
189
        return new AmazonpayTransferToEntityConverter();
190
    }
191
192
    /**
193
     * @return \SprykerEco\Zed\Amazonpay\Business\Order\RefundOrderInterface
194
     */
195
    protected function createRefundOrderModel()
196
    {
197
        return new RefundOrderModel($this->getRefundFacade());
198
    }
199
200
}
201