createEasyCreditResponseToQuoteHydrator()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 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\Yves\Heidelpay;
9
10
use Spryker\Shared\Money\Dependency\Plugin\MoneyPluginInterface;
11
use Spryker\Yves\Kernel\AbstractFactory;
12
use Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface;
13
use Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface;
14
use SprykerEco\Yves\Heidelpay\Dependency\Client\HeidelpayToCalculationClientInterface;
15
use SprykerEco\Yves\Heidelpay\Dependency\Client\HeidelpayToQuoteClientInterface;
16
use SprykerEco\Yves\Heidelpay\Form\CreditCardSecureSubForm;
17
use SprykerEco\Yves\Heidelpay\Form\DataProvider\CreditCardSecureDataProvider;
18
use SprykerEco\Yves\Heidelpay\Form\DataProvider\DirectDebitDataProvider;
19
use SprykerEco\Yves\Heidelpay\Form\DataProvider\EasyCreditDataProvider;
20
use SprykerEco\Yves\Heidelpay\Form\DataProvider\IdealDataProvider;
21
use SprykerEco\Yves\Heidelpay\Form\DataProvider\InvoiceSecuredB2cDataProvider;
22
use SprykerEco\Yves\Heidelpay\Form\DataProvider\PaypalAuthorizeDataProvider;
23
use SprykerEco\Yves\Heidelpay\Form\DataProvider\PaypalDebitDataProvider;
24
use SprykerEco\Yves\Heidelpay\Form\DataProvider\SofortDataProvider;
25
use SprykerEco\Yves\Heidelpay\Form\DirectDebitSubForm;
26
use SprykerEco\Yves\Heidelpay\Form\EasyCreditSubForm;
27
use SprykerEco\Yves\Heidelpay\Form\IdealSubForm;
28
use SprykerEco\Yves\Heidelpay\Form\InvoiceSecuredB2cSubForm;
29
use SprykerEco\Yves\Heidelpay\Form\PaypalAuthorizeSubForm;
30
use SprykerEco\Yves\Heidelpay\Form\PaypalDebitSubForm;
31
use SprykerEco\Yves\Heidelpay\Form\SofortSubForm;
32
use SprykerEco\Yves\Heidelpay\Handler\HeidelpayCreditCardHandler;
33
use SprykerEco\Yves\Heidelpay\Handler\HeidelpayDirectDebitHandler;
34
use SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandler;
35
use SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandlerInterface;
36
use SprykerEco\Yves\Heidelpay\Handler\PaymentFailureHandler;
37
use SprykerEco\Yves\Heidelpay\Handler\PaymentFailureHandlerInterface;
38
use SprykerEco\Yves\Heidelpay\Hydrator\CreditCardPaymentOptionsToQuote;
39
use SprykerEco\Yves\Heidelpay\Hydrator\CreditCardPaymentOptionsToQuoteInterface;
40
use SprykerEco\Yves\Heidelpay\Hydrator\EasyCreditResponseToQuoteHydrator;
41
use SprykerEco\Yves\Heidelpay\Hydrator\EasyCreditResponseToQuoteHydratorInterface;
42
use SprykerEco\Yves\Heidelpay\Hydrator\RegistrationToQuoteHydrator;
43
use SprykerEco\Yves\Heidelpay\Hydrator\RegistrationToQuoteHydratorInterface;
44
use SprykerEco\Yves\Heidelpay\Mapper\EasyCreditResponseToGetParametersMapper;
45
use SprykerEco\Yves\Heidelpay\Mapper\EasyCreditResponseToGetParametersMapperInterface;
46
use SprykerEco\Yves\Heidelpay\Mapper\HeidelpayResponseToIdealAuthorizeForm;
47
use SprykerEco\Yves\Heidelpay\Mapper\HeidelpayResponseToIdealAuthorizeFormInterface;
48
use SprykerEco\Yves\Heidelpay\Processor\HeidelpayDirectDebitRegistrationProcessor;
49
use SprykerEco\Yves\Heidelpay\Processor\HeidelpayDirectDebitRegistrationProcessorInterface;
50
use SprykerEco\Yves\Heidelpay\Processor\HeidelpayPaymentResponseProcessor;
51
use SprykerEco\Yves\Heidelpay\Processor\HeidelpayPaymentResponseProcessorInterface;
52
use SprykerEco\Yves\Heidelpay\Processor\Notification\HeidelpayNotificationProcessor;
53
use SprykerEco\Yves\Heidelpay\Processor\Notification\HeidelpayNotificationProcessorInterface;
54
use SprykerEco\Yves\Heidelpay\Processor\Notification\Mapper\HeidelpayNotificationProcessorMapper;
55
use SprykerEco\Yves\Heidelpay\Processor\Notification\Mapper\HeidelpayNotificationProcessorMapperInterface;
56
57
/**
58
 * @method \SprykerEco\Yves\Heidelpay\HeidelpayConfig getConfig()
59
 * @method \SprykerEco\Client\Heidelpay\HeidelpayClientInterface getClient()
60
 */
61
class HeidelpayFactory extends AbstractFactory
62
{
63
    /**
64
     * @return \SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandlerInterface
65
     */
66
    public function createHeidelpayHandler(): HeidelpayHandlerInterface
67
    {
68
        return new HeidelpayHandler();
69
    }
70
71
    /**
72
     * @return \SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandlerInterface
73
     */
74
    public function createHeidelpayCreditCardHandler(): HeidelpayHandlerInterface
75
    {
76
        return new HeidelpayCreditCardHandler(
77
            $this->getCalculationClient(),
78
            $this->getQuoteClient()
79
        );
80
    }
81
82
    /**
83
     * @return \SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandlerInterface
84
     */
85
    public function createHeidelpayDirectDebitHandler(): HeidelpayHandlerInterface
86
    {
87
        return new HeidelpayDirectDebitHandler(
88
            $this->getCalculationClient(),
89
            $this->getQuoteClient()
90
        );
91
    }
92
93
    /**
94
     * @return \SprykerEco\Yves\Heidelpay\Handler\PaymentFailureHandlerInterface
95
     */
96
    public function createPaymentFailureHandler(): PaymentFailureHandlerInterface
97
    {
98
        return new PaymentFailureHandler(
99
            $this->getClient(),
100
            $this->getConfig()
101
        );
102
    }
103
104
    /**
105
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
106
     */
107
    public function createSofortForm(): SubFormInterface
108
    {
109
        return new SofortSubForm();
110
    }
111
112
    /**
113
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
114
     */
115
    public function createIdealForm(): SubFormInterface
116
    {
117
        return new IdealSubForm();
118
    }
119
120
    /**
121
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
122
     */
123
    public function createCreditCardSecureForm(): SubFormInterface
124
    {
125
        return new CreditCardSecureSubForm();
126
    }
127
128
    /**
129
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
130
     */
131
    public function createDirectDebitSubForm(): SubFormInterface
132
    {
133
        return new DirectDebitSubForm();
134
    }
135
136
    /**
137
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
138
     */
139
    public function createEasyCreditForm(): SubFormInterface
140
    {
141
        return new EasyCreditSubForm();
142
    }
143
144
    /**
145
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
146
     */
147
    public function createPaypalAuthorizeForm(): SubFormInterface
148
    {
149
        return new PaypalAuthorizeSubForm();
150
    }
151
152
    /**
153
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
154
     */
155
    public function createPaypalDebitForm(): SubFormInterface
156
    {
157
        return new PaypalDebitSubForm();
158
    }
159
160
    /**
161
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
162
     */
163
    public function createInvoiceSecuredB2cSubForm(): SubFormInterface
164
    {
165
        return new InvoiceSecuredB2cSubForm();
166
    }
167
168
    /**
169
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
170
     */
171
    public function createSofortFormDataProvider(): StepEngineFormDataProviderInterface
172
    {
173
        return new SofortDataProvider();
174
    }
175
176
    /**
177
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
178
     */
179
    public function createIdealFormDataProvider(): StepEngineFormDataProviderInterface
180
    {
181
        return new IdealDataProvider();
182
    }
183
184
    /**
185
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
186
     */
187
    public function createCreditCardSecureFormDataProvider(): StepEngineFormDataProviderInterface
188
    {
189
        return new CreditCardSecureDataProvider($this->createCreditCardPaymentOptionsToQuoteHydrator());
190
    }
191
192
    /**
193
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
194
     */
195
    public function createDirectDebitDataProvider(): StepEngineFormDataProviderInterface
196
    {
197
        return new DirectDebitDataProvider();
198
    }
199
200
    /**
201
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
202
     */
203
    public function createPaypalAuthorizeFormDataProvider(): StepEngineFormDataProviderInterface
204
    {
205
        return new PaypalAuthorizeDataProvider();
206
    }
207
208
    /**
209
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
210
     */
211
    public function createPaypalDebitFormDataProvider(): StepEngineFormDataProviderInterface
212
    {
213
        return new PaypalDebitDataProvider();
214
    }
215
216
    /**
217
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
218
     */
219
    public function createEasyCreditFormDataProvider(): StepEngineFormDataProviderInterface
220
    {
221
        return new EasyCreditDataProvider($this->getConfig());
222
    }
223
224
    /**
225
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
226
     */
227
    public function createInvoiceSecuredB2cDataProvider(): StepEngineFormDataProviderInterface
228
    {
229
        return new InvoiceSecuredB2cDataProvider();
230
    }
231
232
    /**
233
     * @return \SprykerEco\Yves\Heidelpay\Mapper\HeidelpayResponseToIdealAuthorizeFormInterface
234
     */
235
    public function createHeidelpayResponseToIdealAuthorizeFormMapper(): HeidelpayResponseToIdealAuthorizeFormInterface
236
    {
237
        return new HeidelpayResponseToIdealAuthorizeForm();
238
    }
239
240
    /**
241
     * @return \SprykerEco\Yves\Heidelpay\Hydrator\RegistrationToQuoteHydratorInterface
242
     */
243
    public function createCreditCardRegistrationToQuoteHydrator(): RegistrationToQuoteHydratorInterface
244
    {
245
        return new RegistrationToQuoteHydrator(
246
            $this->createHeidelpayCreditCardHandler()
247
        );
248
    }
249
250
    /**
251
     * @return \SprykerEco\Yves\Heidelpay\Hydrator\EasyCreditResponseToQuoteHydratorInterface
252
     */
253
    public function createEasyCreditResponseToQuoteHydrator(): EasyCreditResponseToQuoteHydratorInterface
254
    {
255
        return new EasyCreditResponseToQuoteHydrator($this->getMoneyPlugin());
256
    }
257
258
    /**
259
     * @return \SprykerEco\Yves\Heidelpay\Mapper\EasyCreditResponseToGetParametersMapperInterface
260
     */
261
    public function createEasyCreditResponseToGetParametersMapper(): EasyCreditResponseToGetParametersMapperInterface
262
    {
263
        return new EasyCreditResponseToGetParametersMapper();
264
    }
265
266
    /**
267
     * @return \SprykerEco\Yves\Heidelpay\Hydrator\CreditCardPaymentOptionsToQuoteInterface
268
     */
269
    public function createCreditCardPaymentOptionsToQuoteHydrator(): CreditCardPaymentOptionsToQuoteInterface
270
    {
271
        return new CreditCardPaymentOptionsToQuote($this->getClient());
272
    }
273
274
    /**
275
     * @return \SprykerEco\Yves\Heidelpay\Processor\HeidelpayDirectDebitRegistrationProcessorInterface
276
     */
277
    public function createHeidelpayDirectDebitRegistrationProcessor(): HeidelpayDirectDebitRegistrationProcessorInterface
278
    {
279
        return new HeidelpayDirectDebitRegistrationProcessor(
280
            $this->getClient(),
281
            $this->getCalculationClient(),
282
            $this->getQuoteClient()
283
        );
284
    }
285
286
    /**
287
     * @return \SprykerEco\Yves\Heidelpay\Processor\Notification\HeidelpayNotificationProcessorInterface
288
     */
289
    public function createHeidelpayNotificationProcessor(): HeidelpayNotificationProcessorInterface
290
    {
291
        return new HeidelpayNotificationProcessor(
292
            $this->createHeidelpayNotificationProcessorMapper(),
293
            $this->getClient()
294
        );
295
    }
296
297
    /**
298
     * @return \SprykerEco\Yves\Heidelpay\Processor\Notification\Mapper\HeidelpayNotificationProcessorMapperInterface
299
     */
300
    public function createHeidelpayNotificationProcessorMapper(): HeidelpayNotificationProcessorMapperInterface
301
    {
302
        return new HeidelpayNotificationProcessorMapper();
303
    }
304
305
    /**
306
     * @return \SprykerEco\Yves\Heidelpay\Processor\HeidelpayPaymentResponseProcessorInterface
307
     */
308
    public function createHeidelpayPaymentResponseProcessor(): HeidelpayPaymentResponseProcessorInterface
309
    {
310
        return new HeidelpayPaymentResponseProcessor(
311
            $this->getClient(),
312
            $this->getQuoteClient()
313
        );
314
    }
315
316
    /**
317
     * @return \SprykerEco\Yves\Heidelpay\Dependency\Client\HeidelpayToCalculationClientInterface
318
     */
319
    public function getCalculationClient(): HeidelpayToCalculationClientInterface
320
    {
321
        return $this->getProvidedDependency(HeidelpayDependencyProvider::CLIENT_CALCULATION);
322
    }
323
324
    /**
325
     * @return \Spryker\Shared\Money\Dependency\Plugin\MoneyPluginInterface
326
     */
327
    public function getMoneyPlugin(): MoneyPluginInterface
328
    {
329
        return $this->getProvidedDependency(HeidelpayDependencyProvider::PLUGIN_MONEY);
330
    }
331
332
    /**
333
     * @return \SprykerEco\Yves\Heidelpay\Dependency\Client\HeidelpayToQuoteClientInterface
334
     */
335
    public function getQuoteClient(): HeidelpayToQuoteClientInterface
336
    {
337
        return $this->getProvidedDependency(HeidelpayDependencyProvider::CLIENT_QUOTE);
338
    }
339
}
340