Completed
Push — master ( b01f25...f0c935 )
by Oleksandr
12s
created

HeidelpayFactory::getCalculationClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
eloc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * MIT License
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Yves\Heidelpay;
9
10
use Spryker\Yves\Kernel\AbstractFactory;
11
use SprykerEco\Yves\Heidelpay\CreditCard\RegistrationToQuoteHydrator;
12
use SprykerEco\Yves\Heidelpay\Form\CreditCardSecureSubForm;
13
use SprykerEco\Yves\Heidelpay\Form\DataProvider\CreditCardSecureDataProvider;
14
use SprykerEco\Yves\Heidelpay\Form\DataProvider\IdealDataProvider;
15
use SprykerEco\Yves\Heidelpay\Form\DataProvider\PaypalAuthorizeDataProvider;
16
use SprykerEco\Yves\Heidelpay\Form\DataProvider\PaypalDebitDataProvider;
17
use SprykerEco\Yves\Heidelpay\Form\DataProvider\SofortDataProvider;
18
use SprykerEco\Yves\Heidelpay\Form\IdealSubForm;
19
use SprykerEco\Yves\Heidelpay\Form\PaypalAuthorizeSubForm;
20
use SprykerEco\Yves\Heidelpay\Form\PaypalDebitSubForm;
21
use SprykerEco\Yves\Heidelpay\Form\SofortSubForm;
22
use SprykerEco\Yves\Heidelpay\Handler\HeidelpayCreditCardHandler;
23
use SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandler;
24
use SprykerEco\Yves\Heidelpay\Handler\PaymentFailureHandler;
25
use SprykerEco\Yves\Heidelpay\Hydrator\CreditCardPaymentOptionsToQuote;
26
use SprykerEco\Yves\Heidelpay\Mapper\HeidelpayResponseToIdealAuthorizeForm;
27
28
/**
29
 * @method \SprykerEco\Yves\Heidelpay\HeidelpayConfig getConfig()
30
 */
31
class HeidelpayFactory extends AbstractFactory
32
{
33
    /**
34
     * @return \SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandlerInterface
35
     */
36
    public function createHeidelpayHandler()
37
    {
38
        return new HeidelpayHandler();
39
    }
40
41
    /**
42
     * @return \SprykerEco\Yves\Heidelpay\Handler\HeidelpayHandlerInterface
43
     */
44
    public function createHeidelpayCreditCardHandler()
45
    {
46
        return new HeidelpayCreditCardHandler(
47
            $this->getCalculationClient(),
48
            $this->getQuoteClient()
49
        );
50
    }
51
52
    /**
53
     * @return \SprykerEco\Yves\Heidelpay\Handler\PaymentFailureHandlerInterface
54
     */
55
    public function createPaymentFailureHandler()
56
    {
57
        return new PaymentFailureHandler(
58
            $this->getHeidelpayClient(),
59
            $this->getConfig()
60
        );
61
    }
62
63
    /**
64
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
65
     */
66
    public function createSofortForm()
67
    {
68
        return new SofortSubForm();
69
    }
70
71
    /**
72
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
73
     */
74
    public function createIdealForm()
75
    {
76
        return new IdealSubForm();
77
    }
78
79
    /**
80
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
81
     */
82
    public function createCreditCardSecureForm()
83
    {
84
        return new CreditCardSecureSubForm();
85
    }
86
87
    /**
88
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
89
     */
90
    public function createPaypalAuthorizeForm()
91
    {
92
        return new PaypalAuthorizeSubForm();
93
    }
94
95
    /**
96
     * @return \Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface
97
     */
98
    public function createPaypalDebitForm()
99
    {
100
        return new PaypalDebitSubForm();
101
    }
102
103
    /**
104
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
105
     */
106
    public function createSofortFormDataProvider()
107
    {
108
        return new SofortDataProvider();
109
    }
110
111
    /**
112
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
113
     */
114
    public function createIdealFormDataProvider()
115
    {
116
        return new IdealDataProvider();
117
    }
118
119
    /**
120
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
121
     */
122
    public function createCreditCardSecureFormDataProvider()
123
    {
124
        return new CreditCardSecureDataProvider(
125
            $this->createCreditCardPaymentOptionsToQuoteHydrator()
126
        );
127
    }
128
129
    /**
130
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
131
     */
132
    public function createPaypalAuthorizeFormDataProvider()
133
    {
134
        return new PaypalAuthorizeDataProvider();
135
    }
136
137
    /**
138
     * @return \Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface
139
     */
140
    public function createPaypalDebitFormDataProvider()
141
    {
142
        return new PaypalDebitDataProvider();
143
    }
144
145
    /**
146
     * @return \SprykerEco\Client\Heidelpay\HeidelpayClientInterface
147
     */
148
    public function getHeidelpayClient()
149
    {
150
        return $this->getProvidedDependency(HeidelpayDependencyProvider::CLIENT_HEIDELPAY);
151
    }
152
153
    /**
154
     * @return \Spryker\Client\Calculation\CalculationClientInterface
155
     */
156
    public function getCalculationClient()
157
    {
158
        return $this->getProvidedDependency(HeidelpayDependencyProvider::CLIENT_CALCULATION);
159
    }
160
161
    /**
162
     * @return \Spryker\Client\Quote\QuoteClientInterface
163
     */
164
    public function getQuoteClient()
165
    {
166
        return $this->getProvidedDependency(HeidelpayDependencyProvider::CLIENT_QUOTE);
167
    }
168
169
    /**
170
     * @return \SprykerEco\Yves\Heidelpay\Mapper\HeidelpayResponseToIdealAuthorizeFormInterface
171
     */
172
    public function createHeidelpayResponseToIdealAuthorizeFormMapper()
173
    {
174
        return new HeidelpayResponseToIdealAuthorizeForm();
175
    }
176
177
    /**
178
     * @return \SprykerEco\Yves\Heidelpay\CreditCard\RegistrationToQuoteHydratorInterface
179
     */
180
    public function createCreditCardRegistrationToQuoteHydrator()
181
    {
182
        return new RegistrationToQuoteHydrator(
183
            $this->createHeidelpayCreditCardHandler()
184
        );
185
    }
186
187
    /**
188
     * @return \SprykerEco\Yves\Heidelpay\HeidelpayConfigInterface
189
     */
190
    public function getYvesConfig()
191
    {
192
        return $this->getConfig();
193
    }
194
195
    /**
196
     * @return \SprykerEco\Yves\Heidelpay\Hydrator\CreditCardPaymentOptionsToQuoteInterface
197
     */
198
    protected function createCreditCardPaymentOptionsToQuoteHydrator()
199
    {
200
        return new CreditCardPaymentOptionsToQuote(
201
            $this->getHeidelpayClient()
202
        );
203
    }
204
}
205