createGetOrderReferenceDetailsTransaction()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 7
rs 10
c 0
b 0
f 0
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\Payment\Handler\Transaction;
9
10
use SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface;
11
use SprykerEco\Zed\AmazonPay\Business\Api\Adapter\AdapterFactoryInterface;
12
use SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayConverterInterface;
13
use SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayTransferToEntityConverterInterface;
14
use SprykerEco\Zed\AmazonPay\Business\Order\PaymentProcessorInterface;
15
use SprykerEco\Zed\AmazonPay\Business\Order\RefundOrderInterface;
16
use SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\Logger\TransactionLoggerInterface;
17
18
class TransactionFactory implements TransactionFactoryInterface
19
{
20
    /**
21
     * @var \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\AdapterFactoryInterface
22
     */
23
    protected $adapterFactory;
24
25
    /**
26
     * @var \SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface
27
     */
28
    protected $config;
29
30
    /**
31
     * @var \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\Logger\TransactionLoggerInterface
32
     */
33
    protected $transactionLogger;
34
35
    /**
36
     * @var \SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayConverterInterface
37
     */
38
    protected $converter;
39
40
    /**
41
     * @var \SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayTransferToEntityConverterInterface
42
     */
43
    protected $toEntityConverter;
44
45
    /**
46
     * @var \SprykerEco\Zed\AmazonPay\Business\Order\RefundOrderInterface
47
     */
48
    protected $refundOrderModel;
49
50
    /**
51
     * @var \SprykerEco\Zed\AmazonPay\Business\Order\PaymentProcessorInterface
52
     */
53
    protected $paymentProcessor;
54
55
    /**
56
     * @param \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\AdapterFactoryInterface $adapterFactory
57
     * @param \SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface $config
58
     * @param \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\Logger\TransactionLoggerInterface $transactionLogger
59
     * @param \SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayConverterInterface $converter
60
     * @param \SprykerEco\Zed\AmazonPay\Business\Converter\AmazonPayTransferToEntityConverterInterface $toEntityConverter
61
     * @param \SprykerEco\Zed\AmazonPay\Business\Order\RefundOrderInterface $refundOrderModel
62
     * @param \SprykerEco\Zed\AmazonPay\Business\Order\PaymentProcessorInterface $paymentProcessor
63
     */
64
    public function __construct(
65
        AdapterFactoryInterface $adapterFactory,
66
        AmazonPayConfigInterface $config,
67
        TransactionLoggerInterface $transactionLogger,
68
        AmazonPayConverterInterface $converter,
69
        AmazonPayTransferToEntityConverterInterface $toEntityConverter,
70
        RefundOrderInterface $refundOrderModel,
71
        PaymentProcessorInterface $paymentProcessor
72
    ) {
73
        $this->adapterFactory = $adapterFactory;
74
        $this->config = $config;
75
        $this->transactionLogger = $transactionLogger;
76
        $this->converter = $converter;
77
        $this->toEntityConverter = $toEntityConverter;
78
        $this->refundOrderModel = $refundOrderModel;
79
        $this->paymentProcessor = $paymentProcessor;
80
    }
81
82
    /**
83
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
84
     */
85
    public function createConfirmOrderReferenceTransaction()
86
    {
87
        return new ConfirmOrderReferenceTransaction(
88
            $this->adapterFactory->createConfirmOrderReferenceAmazonpayAdapter(),
89
            $this->config,
90
            $this->transactionLogger,
91
            $this->paymentProcessor
92
        );
93
    }
94
95
    /**
96
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
97
     */
98
    public function createSetOrderReferenceTransaction()
99
    {
100
        return new SetOrderReferenceDetailsTransaction(
101
            $this->adapterFactory->createSetOrderReferenceDetailsAmazonpayAdapter(),
102
            $this->config,
103
            $this->transactionLogger,
104
            $this->paymentProcessor
105
        );
106
    }
107
108
    /**
109
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
110
     */
111
    public function createGetOrderReferenceDetailsTransaction()
112
    {
113
        return new GetOrderReferenceDetailsTransaction(
114
            $this->adapterFactory->createGetOrderReferenceDetailsAmazonpayAdapter(),
115
            $this->config,
116
            $this->transactionLogger,
117
            $this->paymentProcessor
118
        );
119
    }
120
121
    /**
122
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
123
     */
124
    public function createCancelOrderTransactionSequence()
125
    {
126
        return new TransactionSequence(
127
            [
128
                $this->createRefundOrderTransaction(),
129
                $this->createCancelOrderTransaction(),
130
            ]
131
        );
132
    }
133
134
    /**
135
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
136
     */
137
    protected function createCancelOrderTransaction()
138
    {
139
        return new CancelOrderTransaction(
140
            $this->adapterFactory->createCancelOrderAdapter(),
141
            $this->config,
142
            $this->transactionLogger,
143
            $this->paymentProcessor
144
        );
145
    }
146
147
    /**
148
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
149
     */
150
    public function createAuthorizeTransaction()
151
    {
152
        return new AuthorizeTransaction(
153
            $this->adapterFactory->createAuthorizeAdapter(),
154
            $this->config,
155
            $this->transactionLogger,
156
            $this->paymentProcessor
157
        );
158
    }
159
160
    /**
161
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
162
     */
163
    public function createReauthorizeExpiredOrderTransaction()
164
    {
165
        return new TransactionSequence(
166
            [
167
                $this->createReauthorizeOrderTransaction(),
168
                $this->createUpdateOrderAuthorizationStatusTransaction(),
169
            ]
170
        );
171
    }
172
173
    /**
174
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
175
     */
176
    public function createReauthorizeOrderTransaction()
177
    {
178
        return new ReauthorizeOrderTransaction(
179
            $this->adapterFactory->createAuthorizeAdapter(),
180
            $this->config,
181
            $this->transactionLogger,
182
            $this->paymentProcessor
183
        );
184
    }
185
186
    /**
187
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
188
     */
189
    protected function createCaptureOrderTransaction()
190
    {
191
        return new CaptureOrderTransaction(
192
            $this->adapterFactory->createCaptureOrderAdapter(),
193
            $this->config,
194
            $this->transactionLogger,
195
            $this->paymentProcessor
196
        );
197
    }
198
199
    /**
200
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
201
     */
202
    protected function createAuthorizeCaptureNowTransaction()
203
    {
204
        return new AuthorizeOrderIfRequiredTransaction(
205
            $this->adapterFactory->createAuthorizeCaptureNowAdapter(),
206
            $this->config,
207
            $this->transactionLogger,
208
            $this->paymentProcessor
209
        );
210
    }
211
212
    /**
213
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
214
     */
215
    public function createCaptureAuthorizedTransaction()
216
    {
217
        return new TransactionSequence(
218
            [
219
                $this->createAuthorizeCaptureNowTransaction(),
220
                $this->createUpdateOrderCaptureStatusTransaction(),
221
                $this->createCaptureOrderTransaction(),
222
            ]
223
        );
224
    }
225
226
    /**
227
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
228
     */
229
    public function createCloseCapturedOrderTransaction()
230
    {
231
        return new TransactionSequence(
232
            [
233
                $this->createGetOrderReferenceDetailsTransaction(),
234
                $this->createCloseOrderTransaction(),
235
            ]
236
        );
237
    }
238
239
    /**
240
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
241
     */
242
    protected function createCloseOrderTransaction()
243
    {
244
        return new CloseOrderTransaction(
245
            $this->adapterFactory->createCloseOrderAdapter(),
246
            $this->config,
247
            $this->transactionLogger,
248
            $this->paymentProcessor
249
        );
250
    }
251
252
    /**
253
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
254
     */
255
    public function createRefundOrderTransaction()
256
    {
257
        return new RefundOrderTransaction(
258
            $this->adapterFactory->createRefundOrderAdapter(),
259
            $this->config,
260
            $this->transactionLogger,
261
            $this->paymentProcessor
262
        );
263
    }
264
265
    /**
266
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
267
     */
268
    public function createUpdateOrderRefundStatusTransaction()
269
    {
270
        return new UpdateOrderRefundStatusTransaction(
271
            $this->adapterFactory->createGetOrderRefundDetailsAdapter(),
272
            $this->config,
273
            $this->transactionLogger,
274
            $this->paymentProcessor,
275
            $this->refundOrderModel
276
        );
277
    }
278
279
    /**
280
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
281
     */
282
    public function createUpdateOrderAuthorizationStatusTransaction()
283
    {
284
        return new UpdateOrderAuthorizationStatusTransaction(
285
            $this->adapterFactory->createGetOrderAuthorizationDetailsAdapter(),
286
            $this->config,
287
            $this->transactionLogger,
288
            $this->paymentProcessor
289
        );
290
    }
291
292
    /**
293
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
294
     */
295
    public function createUpdateOrderCaptureStatusHandler()
296
    {
297
        return new TransactionSequence(
298
            [
299
                $this->createUpdateOrderAuthorizationStatusTransaction(),
300
                $this->createUpdateOrderCaptureStatusTransaction(),
301
            ]
302
        );
303
    }
304
305
    /**
306
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
307
     */
308
    public function createUpdateOrderCaptureStatusTransaction()
309
    {
310
        return new UpdateOrderCaptureStatusTransaction(
311
            $this->adapterFactory->createGetOrderCaptureDetailsAdapter(),
312
            $this->config,
313
            $this->transactionLogger,
314
            $this->paymentProcessor
315
        );
316
    }
317
318
    /**
319
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\AmazonpayTransactionInterface
320
     */
321
    public function createHandleDeclinedOrderTransaction()
322
    {
323
        return new HandleDeclinedOrderTransaction(
324
            $this->createGetOrderReferenceDetailsTransaction(),
325
            $this->createCancelOrderTransaction()
326
        );
327
    }
328
329
    /**
330
     * @return \SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction\TransactionCollectionInterface
331
     */
332
    public function createConfirmPurchaseTransaction()
333
    {
334
        return new ConfirmPurchaseTransactionCollection(
335
            [
336
                $this->createSetOrderReferenceTransaction(),
337
                $this->createConfirmOrderReferenceTransaction(),
338
                $this->createGetOrderReferenceDetailsTransaction(),
339
            ],
340
            $this->converter
341
        );
342
    }
343
}
344