Passed
Push — bugfix/supesc-331-adjusted-the... ( a6d65b...656fd3 )
by Ihor
04:07
created

AdapterFactory::createAkeneoPimSdkDirector()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter;
9
10
use AkeneoPim\Dependencies\External\Api\Adapter\Sdk\AkeneoPimSdkDirector;
11
use SprykerEco\Service\AkeneoPim\AkeneoPimConfig;
12
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Attributes\AttributeApiAdapter;
13
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Attributes\AttributeGroupApiAdapter;
14
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Attributes\AttributeOptionApiAdapter;
15
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Attributes\AttributeOptionApiAdapterInterface;
16
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Category\CategoryApiAdapter;
17
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Category\ChannelApiAdapter;
18
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Category\CurrencyApiAdapter;
19
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Category\LocaleApiAdapter;
20
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Family\FamilyApiAdapter;
21
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Family\FamilyVariantApiAdapter;
22
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Family\FamilyVariantApiAdapterInterface;
23
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Family\MeasureFamilyApiAdapter;
24
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Product\AssociationTypeApiAdapter;
25
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Product\ProductApiAdapter;
26
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Product\ProductMediaFileApiAdapter;
27
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Product\ProductModelApiAdapter;
28
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Sdk\AkeneoPimSdkDirectorInterface;
29
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Sdk\AkeneoPimSdkFactory;
30
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Sdk\AkeneoPimSdkFactoryInterface;
31
use SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Wrapper\WrapperFactoryInterface;
32
use Symfony\Component\HttpFoundation\Session\SessionInterface;
33
34
class AdapterFactory implements AdapterFactoryInterface
35
{
36
    /**
37
     * @var \SprykerEco\Service\AkeneoPim\AkeneoPimConfig
38
     */
39
    protected $config;
40
41
    /**
42
     * @var \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Wrapper\WrapperFactoryInterface
43
     */
44
    protected $wrapperFactory;
45
46
    /**
47
     * @var \Symfony\Component\HttpFoundation\Session\SessionInterface
48
     */
49
    private SessionInterface $session;
50
51
    /**
52
     * @param \SprykerEco\Service\AkeneoPim\AkeneoPimConfig $config
53
     * @param \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Wrapper\WrapperFactoryInterface $wrapperFactory
54
     */
55
    public function __construct(AkeneoPimConfig $config, WrapperFactoryInterface $wrapperFactory, SessionInterface $session)
56
    {
57
        $this->config = $config;
58
        $this->wrapperFactory = $wrapperFactory;
59
        $this->session = $session;
60
    }
61
62
    /**
63
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
64
     */
65
    public function createProductApiAdapter(): ApiAdapterInterface
66
    {
67
        return new ProductApiAdapter(
68
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
69
            $this->wrapperFactory
70
        );
71
    }
72
73
    /**
74
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
75
     */
76
    public function createCategoryApiAdapter(): ApiAdapterInterface
77
    {
78
        return new CategoryApiAdapter(
79
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
80
            $this->wrapperFactory
81
        );
82
    }
83
84
    /**
85
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
86
     */
87
    public function createAttributeApiAdapter(): ApiAdapterInterface
88
    {
89
        return new AttributeApiAdapter(
90
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
91
            $this->wrapperFactory
92
        );
93
    }
94
95
    /**
96
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
97
     */
98
    public function createAttributeGroupApiAdapter(): ApiAdapterInterface
99
    {
100
        return new AttributeGroupApiAdapter(
101
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
102
            $this->wrapperFactory
103
        );
104
    }
105
106
    /**
107
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Attributes\AttributeOptionApiAdapterInterface
108
     */
109
    public function createAttributeOptionApiAdapter(): AttributeOptionApiAdapterInterface
110
    {
111
        return new AttributeOptionApiAdapter(
112
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
113
            $this->wrapperFactory
114
        );
115
    }
116
117
    /**
118
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
119
     */
120
    public function createAssociationTypeApiAdapter(): ApiAdapterInterface
121
    {
122
        return new AssociationTypeApiAdapter(
123
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
124
            $this->wrapperFactory
125
        );
126
    }
127
128
    /**
129
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
130
     */
131
    public function createChannelApiAdapter(): ApiAdapterInterface
132
    {
133
        return new ChannelApiAdapter(
134
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
135
            $this->wrapperFactory
136
        );
137
    }
138
139
    /**
140
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
141
     */
142
    public function createCurrencyApiAdapter(): ApiAdapterInterface
143
    {
144
        return new CurrencyApiAdapter(
145
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
146
            $this->wrapperFactory
147
        );
148
    }
149
150
    /**
151
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
152
     */
153
    public function createFamilyApiAdapter(): ApiAdapterInterface
154
    {
155
        return new FamilyApiAdapter(
156
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
157
            $this->wrapperFactory
158
        );
159
    }
160
161
    /**
162
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Family\FamilyVariantApiAdapterInterface
163
     */
164
    public function createFamilyVariantApiAdapter(): FamilyVariantApiAdapterInterface
165
    {
166
        return new FamilyVariantApiAdapter(
167
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
168
            $this->wrapperFactory
169
        );
170
    }
171
172
    /**
173
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
174
     */
175
    public function createLocaleApiAdapter(): ApiAdapterInterface
176
    {
177
        return new LocaleApiAdapter(
178
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
179
            $this->wrapperFactory
180
        );
181
    }
182
183
    /**
184
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
185
     */
186
    public function createMeasureFamilyApiAdapter(): ApiAdapterInterface
187
    {
188
        return new MeasureFamilyApiAdapter(
189
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
190
            $this->wrapperFactory
191
        );
192
    }
193
194
    /**
195
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
196
     */
197
    public function createProductMediaFileApiAdapter(): ApiAdapterInterface
198
    {
199
        return new ProductMediaFileApiAdapter(
200
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
201
            $this->wrapperFactory
202
        );
203
    }
204
205
    /**
206
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\ApiAdapterInterface
207
     */
208
    public function createProductModelApiAdapter(): ApiAdapterInterface
209
    {
210
        return new ProductModelApiAdapter(
211
            $this->createAkeneoPimSdkDirector()->createAkeneoPimClient($this->config),
212
            $this->wrapperFactory
213
        );
214
    }
215
216
    /**
217
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Sdk\AkeneoPimSdkFactoryInterface
218
     */
219
    public function createAkeneoPimSdkFactory(): AkeneoPimSdkFactoryInterface
220
    {
221
        return new AkeneoPimSdkFactory();
222
    }
223
224
    /**
225
     * @return \SprykerEco\Service\AkeneoPim\Dependencies\External\Api\Adapter\Sdk\AkeneoPimSdkDirectorInterface
226
     */
227
    public function createAkeneoPimSdkDirector(): AkeneoPimSdkDirectorInterface
228
    {
229
        return new AkeneoPimSdkDirector(
230
            $this->createAkeneoPimSdkFactory(),
231
            $this->session
232
        );
233
    }
234
}
235