Passed
Push — feature/paypal-express ( a53a85...f7c875 )
by Volodymyr
06:27 queued 15s
created

createCaptureItemsTransactionHandler()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Zed\Braintree\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Zed\Braintree\BraintreeDependencyProvider;
12
use SprykerEco\Zed\Braintree\Business\Hook\PostSaveHook;
13
use SprykerEco\Zed\Braintree\Business\Hook\PostSaveHookInterface;
14
use SprykerEco\Zed\Braintree\Business\Log\TransactionStatusLog;
15
use SprykerEco\Zed\Braintree\Business\Log\TransactionStatusLogInterface;
16
use SprykerEco\Zed\Braintree\Business\Order\Saver;
17
use SprykerEco\Zed\Braintree\Business\Order\SaverInterface;
18
use SprykerEco\Zed\Braintree\Business\Payment\Filter\PaypalExpressPaymentMethodFilter;
19
use SprykerEco\Zed\Braintree\Business\Payment\Filter\PaypalExpressPaymentMethodFilterInterface;
20
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\AuthorizeTransaction;
21
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\CaptureTransaction;
22
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\AuthorizeTransactionHandler;
23
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\AuthorizeTransactionHandlerInterface;
24
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\CaptureItemsTransactionHandler;
25
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\CaptureItemsTransactionHandlerInterface;
26
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\CaptureOrderTransactionHandler;
27
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\CaptureOrderTransactionHandlerInterface;
28
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\PreCheckTransactionHandler;
29
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\PreCheckTransactionHandlerInterface;
30
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\RefundTransactionHandler;
31
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\RefundTransactionHandlerInterface;
32
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\RevertTransactionHandler;
33
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\RevertTransactionHandlerInterface;
34
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\MetaVisitor\PaymentTransactionMetaVisitor;
35
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\MetaVisitor\TransactionMetaVisitorComposite;
36
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\MetaVisitor\TransactionMetaVisitorInterface;
37
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\PreCheckTransaction;
38
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\RefundTransaction;
39
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\RevertTransaction;
40
use SprykerEco\Zed\Braintree\Business\Payment\Transaction\TransactionInterface;
41
use SprykerEco\Zed\Braintree\Dependency\Facade\BraintreeToMoneyFacadeInterface;
42
use SprykerEco\Zed\Braintree\Dependency\Facade\BraintreeToRefundFacadeInterface;
43
44
/**
45
 * @method \SprykerEco\Zed\Braintree\Persistence\BraintreeQueryContainerInterface getQueryContainer()
46
 * @method \SprykerEco\Zed\Braintree\BraintreeConfig getConfig()
47
 * @method \SprykerEco\Zed\Braintree\Persistence\BraintreeRepositoryInterface getRepository()
48
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
49
 */
50
class BraintreeBusinessFactory extends AbstractBusinessFactory
51
{
52
    /**
53
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\AuthorizeTransactionHandlerInterface
54
     */
55
    public function createAuthorizeTransactionHandler(): AuthorizeTransactionHandlerInterface
56
    {
57
        return new AuthorizeTransactionHandler(
58
            $this->createAuthorizeTransaction(),
59
            $this->createDefaultTransactionMetaVisitor()
60
        );
61
    }
62
63
    /**
64
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\CaptureItemsTransactionHandlerInterface
65
     */
66
    public function createCaptureItemsTransactionHandler(): CaptureItemsTransactionHandlerInterface
67
    {
68
        return new CaptureItemsTransactionHandler(
69
            $this->createCaptureTransaction(),
70
            $this->createDefaultTransactionMetaVisitor()
71
        );
72
    }
73
74
    /**
75
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\CaptureOrderTransactionHandlerInterface
76
     */
77
    public function createCaptureOrderTransactionHandler(): CaptureOrderTransactionHandlerInterface
78
    {
79
        return new CaptureOrderTransactionHandler(
80
            $this->createCaptureTransaction(),
81
            $this->createDefaultTransactionMetaVisitor()
82
        );
83
    }
84
85
    /**
86
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\PreCheckTransactionHandlerInterface
87
     */
88
    public function createPreCheckTransactionHandler(): PreCheckTransactionHandlerInterface
89
    {
90
        return new PreCheckTransactionHandler(
91
            $this->createPreCheckTransaction(),
92
            $this->createDefaultTransactionMetaVisitor()
93
        );
94
    }
95
96
    /**
97
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\RefundTransactionHandlerInterface
98
     */
99
    public function createRefundTransactionHandler(): RefundTransactionHandlerInterface
100
    {
101
        return new RefundTransactionHandler(
102
            $this->createRefundTransaction(),
103
            $this->createDefaultTransactionMetaVisitor(),
104
            $this->getRefundFacade()
105
        );
106
    }
107
108
    /**
109
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\Handler\RevertTransactionHandlerInterface
110
     */
111
    public function createRevertTransactionHandler(): RevertTransactionHandlerInterface
112
    {
113
        return new RevertTransactionHandler(
114
            $this->createRevertTransaction(),
115
            $this->createDefaultTransactionMetaVisitor()
116
        );
117
    }
118
119
    /**
120
     * @return \SprykerEco\Zed\Braintree\Business\Order\SaverInterface
121
     */
122
    public function createOrderSaver(): SaverInterface
123
    {
124
        return new Saver();
125
    }
126
127
    /**
128
     * @return \SprykerEco\Zed\Braintree\Business\Log\TransactionStatusLogInterface
129
     */
130
    public function createTransactionStatusLog(): TransactionStatusLogInterface
131
    {
132
        return new TransactionStatusLog($this->getRepository());
133
    }
134
135
    /**
136
     * @return \SprykerEco\Zed\Braintree\Business\Hook\PostSaveHookInterface
137
     */
138
    public function createPostSaveHook(): PostSaveHookInterface
139
    {
140
        return new PostSaveHook($this->getRepository());
141
    }
142
143
    /**
144
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\TransactionInterface
145
     */
146
    public function createAuthorizeTransaction(): TransactionInterface
147
    {
148
        return new AuthorizeTransaction($this->getConfig());
149
    }
150
151
    /**
152
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\MetaVisitor\TransactionMetaVisitorInterface
153
     */
154
    public function createDefaultTransactionMetaVisitor(): TransactionMetaVisitorInterface
155
    {
156
        $transactionMetaVisitorComposite = $this->createTransactionMetaVisitorComposite();
157
        $transactionMetaVisitorComposite->addVisitor($this->createPaymentTransactionMetaVisitor());
158
159
        return $transactionMetaVisitorComposite;
160
    }
161
162
    /**
163
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\MetaVisitor\TransactionMetaVisitorInterface
164
     */
165
    public function createTransactionMetaVisitorComposite(): TransactionMetaVisitorInterface
166
    {
167
        return new TransactionMetaVisitorComposite();
168
    }
169
170
    /**
171
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\MetaVisitor\TransactionMetaVisitorInterface
172
     */
173
    public function createPaymentTransactionMetaVisitor(): TransactionMetaVisitorInterface
174
    {
175
        return new PaymentTransactionMetaVisitor($this->getRepository());
176
    }
177
178
    /**
179
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\TransactionInterface
180
     */
181
    public function createCaptureTransaction(): TransactionInterface
182
    {
183
        return new CaptureTransaction($this->getConfig());
184
    }
185
186
    /**
187
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\TransactionInterface
188
     */
189
    public function createPreCheckTransaction(): TransactionInterface
190
    {
191
        return new PreCheckTransaction($this->getConfig(), $this->getMoneyFacade());
192
    }
193
194
    /**
195
     * @return \SprykerEco\Zed\Braintree\Dependency\Facade\BraintreeToMoneyFacadeInterface
196
     */
197
    public function getMoneyFacade(): BraintreeToMoneyFacadeInterface
198
    {
199
        return $this->getProvidedDependency(BraintreeDependencyProvider::FACADE_MONEY);
200
    }
201
202
    /**
203
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\TransactionInterface
204
     */
205
    public function createRefundTransaction(): TransactionInterface
206
    {
207
        return new RefundTransaction($this->getConfig(), $this->getMoneyFacade());
208
    }
209
210
    /**
211
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Transaction\TransactionInterface
212
     */
213
    public function createRevertTransaction(): TransactionInterface
214
    {
215
        return new RevertTransaction($this->getConfig());
216
    }
217
218
    /**
219
     * @return \SprykerEco\Zed\Braintree\Dependency\Facade\BraintreeToRefundFacadeInterface
220
     */
221
    public function getRefundFacade(): BraintreeToRefundFacadeInterface
222
    {
223
        return $this->getProvidedDependency(BraintreeDependencyProvider::FACADE_REFUND);
224
    }
225
226
    /**
227
     * @return \SprykerEco\Zed\Braintree\Business\Payment\Filter\PaypalExpressPaymentMethodFilterInterface
228
     */
229
    public function createPaypalExpressCheckoutPaymentMethod(): PaypalExpressPaymentMethodFilterInterface
230
    {
231
        return new PaypalExpressPaymentMethodFilter();
232
    }
233
}
234