AdapterFactory::createAuthorizeCaptureNowAdapter()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 8
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\Api\Adapter;
9
10
use SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface;
11
use SprykerEco\Zed\AmazonPay\Business\Api\Adapter\Sdk\AmazonPaySdkAdapterFactory;
12
use SprykerEco\Zed\AmazonPay\Business\Api\Converter\ConverterFactoryInterface;
13
use SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToMoneyInterface;
14
15
class AdapterFactory implements AdapterFactoryInterface
16
{
17
    /**
18
     * @var \SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface
19
     */
20
    protected $config;
21
22
    /**
23
     * @var \SprykerEco\Zed\AmazonPay\Business\Api\Converter\ConverterFactoryInterface
24
     */
25
    protected $converterFactory;
26
27
    /**
28
     * @var \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToMoneyInterface
29
     */
30
    protected $moneyFacade;
31
32
    /**
33
     * @param \SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface $config
34
     * @param \SprykerEco\Zed\AmazonPay\Business\Api\Converter\ConverterFactoryInterface $converterFactory
35
     * @param \SprykerEco\Zed\AmazonPay\Dependency\Facade\AmazonPayToMoneyInterface $moneyFacade
36
     */
37
    public function __construct(
38
        AmazonPayConfigInterface $config,
39
        ConverterFactoryInterface $converterFactory,
40
        AmazonPayToMoneyInterface $moneyFacade
41
    ) {
42
        $this->config = $config;
43
        $this->converterFactory = $converterFactory;
44
        $this->moneyFacade = $moneyFacade;
45
    }
46
47
    /**
48
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
49
     */
50
    public function createObtainProfileInformationAdapter()
51
    {
52
        return new ObtainProfileInformationAdapter(
53
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
54
            $this->converterFactory->createObtainProfileInformationConverter()
55
        );
56
    }
57
58
    /**
59
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
60
     */
61
    public function createSetOrderReferenceDetailsAmazonpayAdapter()
62
    {
63
        return new SetOrderReferenceDetailsAdapter(
64
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
65
            $this->converterFactory->createSetOrderReferenceDetailsConverter(),
66
            $this->moneyFacade
67
        );
68
    }
69
70
    /**
71
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
72
     */
73
    public function createConfirmOrderReferenceAmazonpayAdapter()
74
    {
75
        return new ConfirmQuoteReferenceAdapter(
76
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
77
            $this->converterFactory->createConfirmOrderReferenceConverter(),
78
            $this->moneyFacade
79
        );
80
    }
81
82
    /**
83
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
84
     */
85
    public function createGetOrderReferenceDetailsAmazonpayAdapter()
86
    {
87
        return new GetOrderReferenceDetailsAdapter(
88
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
89
            $this->converterFactory->createGetOrderReferenceDetailsConverter(),
90
            $this->moneyFacade
91
        );
92
    }
93
94
    /**
95
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
96
     */
97
    public function createAuthorizeAdapter()
98
    {
99
        return new AuthorizeAdapter(
100
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
101
            $this->converterFactory->createAuthorizeOrderConverter(),
102
            $this->moneyFacade,
103
            $this->config
104
        );
105
    }
106
107
    /**
108
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
109
     */
110
    public function createAuthorizeCaptureNowAdapter()
111
    {
112
        return new AuthorizeAdapter(
113
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
114
            $this->converterFactory->createAuthorizeOrderConverter(),
115
            $this->moneyFacade,
116
            $this->config,
117
            true
118
        );
119
    }
120
121
    /**
122
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
123
     */
124
    public function createCaptureOrderAdapter()
125
    {
126
        return new CaptureOrderAdapter(
127
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
128
            $this->converterFactory->createCaptureOrderConverter(),
129
            $this->moneyFacade
130
        );
131
    }
132
133
    /**
134
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
135
     */
136
    public function createCloseOrderAdapter()
137
    {
138
        return new CloseOrderAdapter(
139
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
140
            $this->converterFactory->createCloseOrderConverter(),
141
            $this->moneyFacade
142
        );
143
    }
144
145
    /**
146
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
147
     */
148
    public function createCancelOrderAdapter()
149
    {
150
        return new CancelOrderAdapter(
151
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
152
            $this->converterFactory->createCancelOrderConverter(),
153
            $this->moneyFacade
154
        );
155
    }
156
157
    /**
158
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
159
     */
160
    public function createRefundOrderAdapter()
161
    {
162
        return new RefundOrderAdapter(
163
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
164
            $this->converterFactory->createRefundOrderConverter(),
165
            $this->moneyFacade
166
        );
167
    }
168
169
    /**
170
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
171
     */
172
    public function createGetOrderAuthorizationDetailsAdapter()
173
    {
174
        return new GetOrderAuthorizationDetailsAdapter(
175
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
176
            $this->converterFactory->createGetAuthorizationDetailsOrderConverter(),
177
            $this->moneyFacade
178
        );
179
    }
180
181
    /**
182
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
183
     */
184
    public function createGetOrderCaptureDetailsAdapter()
185
    {
186
        return new GetOrderCaptureDetailsAdapter(
187
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
188
            $this->converterFactory->createGetCaptureOrderDetailsConverter(),
189
            $this->moneyFacade
190
        );
191
    }
192
193
    /**
194
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\CallAdapterInterface
195
     */
196
    public function createGetOrderRefundDetailsAdapter()
197
    {
198
        return new GetOrderRefundDetailsAdapter(
199
            $this->createSdkAdapterFactory()->createAmazonPayClient($this->config),
200
            $this->converterFactory->createGetRefundOrderConverter(),
201
            $this->moneyFacade
202
        );
203
    }
204
205
    /**
206
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\Sdk\AmazonPaySdkAdapterFactoryInterface
207
     */
208
    protected function createSdkAdapterFactory()
209
    {
210
        return new AmazonPaySdkAdapterFactory();
211
    }
212
213
    /**
214
     * @param array $headers
215
     * @param string $body
216
     *
217
     * @return \SprykerEco\Zed\AmazonPay\Business\Api\Adapter\IpnRequestAdapterInterface
218
     */
219
    public function createIpnRequestAdapter(array $headers, $body)
220
    {
221
        return new IpnRequestAdapter(
222
            $this->createSdkAdapterFactory()->createAmazonPayIpnHandler($headers, $body),
223
            $this->converterFactory->createIpnArrayConverter()
224
        );
225
    }
226
}
227