createOrderCancelledEventMailer()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 4
c 1
b 1
f 0
dl 0
loc 6
rs 10
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\Zed\Episerver\Business;
9
10
use GuzzleHttp\Client;
11
use GuzzleHttp\RequestOptions;
12
use Spryker\Shared\Kernel\Store;
13
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
14
use SprykerEco\Zed\Episerver\Business\Api\Adapter\EpiserverApiAdapter;
15
use SprykerEco\Zed\Episerver\Business\Api\Adapter\EpiserverApiAdapterInterface;
16
use SprykerEco\Zed\Episerver\Business\Api\Adapter\Http\GuzzleAdapter;
17
use SprykerEco\Zed\Episerver\Business\Api\Adapter\Http\HttpAdapterInterface;
18
use SprykerEco\Zed\Episerver\Business\Api\Request\RequestUrlBuilder;
19
use SprykerEco\Zed\Episerver\Business\Api\Request\RequestUrlBuilderInterface;
20
use SprykerEco\Zed\Episerver\Business\Api\Response\ResponseConverter;
21
use SprykerEco\Zed\Episerver\Business\Api\Response\ResponseConverterInterface;
22
use SprykerEco\Zed\Episerver\Business\Handler\Customer\CustomerEventMailer;
23
use SprykerEco\Zed\Episerver\Business\Handler\Customer\CustomerEventMailerInterface;
24
use SprykerEco\Zed\Episerver\Business\Handler\Order\OrderEventMailer;
25
use SprykerEco\Zed\Episerver\Business\Handler\Order\OrderEventMailerInterface;
26
use SprykerEco\Zed\Episerver\Business\Mapper\Customer\CustomerMapper;
27
use SprykerEco\Zed\Episerver\Business\Mapper\Customer\CustomerMapperInterface;
28
use SprykerEco\Zed\Episerver\Business\Mapper\Customer\CustomerNewsletterMapper;
29
use SprykerEco\Zed\Episerver\Business\Mapper\Order\NewOrderMapper;
30
use SprykerEco\Zed\Episerver\Business\Mapper\Order\OrderCanceledMapper;
31
use SprykerEco\Zed\Episerver\Business\Mapper\Order\OrderMapperInterface;
32
use SprykerEco\Zed\Episerver\Business\Mapper\Order\PaymentNotReceivedMapper;
33
use SprykerEco\Zed\Episerver\Business\Mapper\Order\ShippingConfirmationMapper;
34
use SprykerEco\Zed\Episerver\Dependency\Facade\EpiserverToLocaleFacadeInterface;
35
use SprykerEco\Zed\Episerver\Dependency\Facade\EpiserverToMoneyFacadeInterface;
36
use SprykerEco\Zed\Episerver\Dependency\Facade\EpiserverToSalesFacadeInterface;
37
use SprykerEco\Zed\Episerver\EpiserverDependencyProvider;
38
39
/**
40
 * @method \SprykerEco\Zed\Episerver\EpiserverConfig getConfig()
41
 */
42
class EpiserverBusinessFactory extends AbstractBusinessFactory
43
{
44
    /**
45
     * @return \SprykerEco\Zed\Episerver\Business\Handler\Order\OrderEventMailerInterface
46
     */
47
    public function createShippingConfirmationEventMailer(): OrderEventMailerInterface
48
    {
49
        return new OrderEventMailer(
50
            $this->createShippingConfirmationMapper(),
51
            $this->createEpiserverApiAdapter(),
52
            $this->getSalesFacade()
53
        );
54
    }
55
56
    /**
57
     * @return \SprykerEco\Zed\Episerver\Business\Handler\Order\OrderEventMailerInterface
58
     */
59
    public function createPaymentNotReceivedEventMailer(): OrderEventMailerInterface
60
    {
61
        return new OrderEventMailer(
62
            $this->createPaymentNotReceivedMapper(),
63
            $this->createEpiserverApiAdapter(),
64
            $this->getSalesFacade()
65
        );
66
    }
67
68
    /**
69
     * @return \SprykerEco\Zed\Episerver\Business\Handler\Order\OrderEventMailerInterface
70
     */
71
    public function createOrderCancelledEventMailer(): OrderEventMailerInterface
72
    {
73
        return new OrderEventMailer(
74
            $this->createOrderCancelledMapper(),
75
            $this->createEpiserverApiAdapter(),
76
            $this->getSalesFacade()
77
        );
78
    }
79
80
    /**
81
     * @return \SprykerEco\Zed\Episerver\Business\Handler\Order\OrderEventMailerInterface
82
     */
83
    public function createNewOrderEventMailer(): OrderEventMailerInterface
84
    {
85
        return new OrderEventMailer(
86
            $this->createNewOrderMapper(),
87
            $this->createEpiserverApiAdapter(),
88
            $this->getSalesFacade()
89
        );
90
    }
91
92
    /**
93
     * @return \SprykerEco\Zed\Episerver\Business\Handler\Customer\CustomerEventMailerInterface
94
     */
95
    public function createCustomerEventMailer(): CustomerEventMailerInterface
96
    {
97
        return new CustomerEventMailer($this->createCustomerMapper(), $this->createEpiserverApiAdapter());
98
    }
99
100
    /**
101
     * @return \SprykerEco\Zed\Episerver\Business\Handler\Customer\CustomerEventMailerInterface
102
     */
103
    public function createNewsletterSubscriptionEventMailer(): CustomerEventMailerInterface
104
    {
105
        return new CustomerEventMailer($this->createCustomerNewsletterMapper(), $this->createEpiserverApiAdapter());
106
    }
107
108
    /**
109
     * @return \SprykerEco\Zed\Episerver\Dependency\Facade\EpiserverToMoneyFacadeInterface
110
     */
111
    public function getMoneyFacade(): EpiserverToMoneyFacadeInterface
112
    {
113
        return $this->getProvidedDependency(EpiserverDependencyProvider::FACADE_MONEY);
114
    }
115
116
    /**
117
     * @return \SprykerEco\Zed\Episerver\Dependency\Facade\EpiserverToLocaleFacadeInterface
118
     */
119
    public function getLocaleFacade(): EpiserverToLocaleFacadeInterface
120
    {
121
        return $this->getProvidedDependency(EpiserverDependencyProvider::FACADE_LOCALE);
122
    }
123
124
    /**
125
     * @return \SprykerEco\Zed\Episerver\Dependency\Facade\EpiserverToSalesFacadeInterface
126
     */
127
    public function getSalesFacade(): EpiserverToSalesFacadeInterface
128
    {
129
        return $this->getProvidedDependency(EpiserverDependencyProvider::FACADE_SALES);
130
    }
131
132
    /**
133
     * @return \SprykerEco\Zed\Episerver\Business\Api\Request\RequestUrlBuilderInterface
134
     */
135
    public function createRequestUrlBuilder(): RequestUrlBuilderInterface
136
    {
137
        return new RequestUrlBuilder($this->getConfig());
138
    }
139
140
    /**
141
     * @return \SprykerEco\Zed\Episerver\Business\Api\Response\ResponseConverterInterface
142
     */
143
    public function createResponseConverter(): ResponseConverterInterface
144
    {
145
        return new ResponseConverter();
146
    }
147
148
    /**
149
     * @return \SprykerEco\Zed\Episerver\Business\Api\Adapter\Http\HttpAdapterInterface
150
     */
151
    public function createGuzzleAdapter(): HttpAdapterInterface
152
    {
153
        return new GuzzleAdapter(
154
            $this->getConfig(),
155
            $this->createHttpClient()
156
        );
157
    }
158
159
    /**
160
     * @return \GuzzleHttp\Client
161
     */
162
    public function createHttpClient(): Client
163
    {
164
        return new Client([
165
            RequestOptions::TIMEOUT => $this->getConfig()->getRequestTimeout(),
166
        ]);
167
    }
168
169
    /**
170
     * @return \SprykerEco\Zed\Episerver\Business\Api\Adapter\EpiserverApiAdapterInterface
171
     */
172
    public function createEpiserverApiAdapter(): EpiserverApiAdapterInterface
173
    {
174
        return new EpiserverApiAdapter(
175
            $this->createGuzzleAdapter(),
176
            $this->createRequestUrlBuilder(),
177
            $this->createResponseConverter()
178
        );
179
    }
180
181
    /**
182
     * @return \SprykerEco\Zed\Episerver\Business\Mapper\Customer\CustomerMapperInterface
183
     */
184
    public function createCustomerMapper(): CustomerMapperInterface
185
    {
186
        return new CustomerMapper(
187
            $this->getConfig(),
188
            $this->getLocaleFacade(),
189
            $this->getStore()
190
        );
191
    }
192
193
    /**
194
     * @return \SprykerEco\Zed\Episerver\Business\Mapper\Customer\CustomerMapperInterface
195
     */
196
    public function createCustomerNewsletterMapper(): CustomerMapperInterface
197
    {
198
        return new CustomerNewsletterMapper(
199
            $this->getConfig(),
200
            $this->getLocaleFacade(),
201
            $this->getStore()
202
        );
203
    }
204
205
    /**
206
     * @return \SprykerEco\Zed\Episerver\Business\Mapper\Order\OrderMapperInterface
207
     */
208
    public function createNewOrderMapper(): OrderMapperInterface
209
    {
210
        return new NewOrderMapper(
211
            $this->getConfig(),
212
            $this->getMoneyFacade(),
213
            $this->getLocaleFacade(),
214
            $this->getStore()
215
        );
216
    }
217
218
    /**
219
     * @return \SprykerEco\Zed\Episerver\Business\Mapper\Order\OrderMapperInterface
220
     */
221
    public function createPaymentNotReceivedMapper(): OrderMapperInterface
222
    {
223
        return new PaymentNotReceivedMapper(
224
            $this->getConfig(),
225
            $this->getMoneyFacade(),
226
            $this->getLocaleFacade(),
227
            $this->getStore()
228
        );
229
    }
230
231
    /**
232
     * @return \SprykerEco\Zed\Episerver\Business\Mapper\Order\OrderMapperInterface
233
     */
234
    public function createShippingConfirmationMapper(): OrderMapperInterface
235
    {
236
        return new ShippingConfirmationMapper(
237
            $this->getConfig(),
238
            $this->getMoneyFacade(),
239
            $this->getLocaleFacade(),
240
            $this->getStore()
241
        );
242
    }
243
244
    /**
245
     * @return \SprykerEco\Zed\Episerver\Business\Mapper\Order\OrderMapperInterface
246
     */
247
    public function createOrderCancelledMapper(): OrderMapperInterface
248
    {
249
        return new OrderCanceledMapper(
250
            $this->getConfig(),
251
            $this->getMoneyFacade(),
252
            $this->getLocaleFacade(),
253
            $this->getStore()
254
        );
255
    }
256
257
    /**
258
     * @return \Spryker\Shared\Kernel\Store
259
     */
260
    public function getStore(): Store
261
    {
262
        return $this->getProvidedDependency(EpiserverDependencyProvider::STORE);
263
    }
264
}
265