Passed
Push — feature/ECO-807-travis-ci ( 7b7181...a6fc91 )
by Andrey
03:17
created

createSetOrderReferenceDetailsAmazonpayAdapter()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

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