Passed
Pull Request — master (#16)
by Anton
12:10 queued 05:26
created

FactFinderSdkBusinessFactory::createCsvFile()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 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\Zed\FactFinderSdk\Business;
9
10
use Generated\Shared\Transfer\LocaleTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\LocaleTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
12
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkAttributesExpander;
13
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkCategoryExpander;
14
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkDescriptionExpander;
15
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface;
16
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkIsNewExpander;
17
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkPriceExpander;
18
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkReviewExpander;
19
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkTimestampExpander;
20
use SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkUrlExpander;
21
use SprykerEco\Zed\FactFinderSdk\Business\Exporter\FactFinderSdkProductExporter;
22
use SprykerEco\Zed\FactFinderSdk\Business\Writer\CsvFileWriter;
23
use SprykerEco\Zed\FactFinderSdk\Business\Writer\FileWriterInterface;
24
use SprykerEco\Zed\FactFinderSdk\FactFinderSdkDependencyProvider;
25
26
/**
27
 * @method \SprykerEco\Zed\FactFinderSdk\Persistence\FactFinderSdkQueryContainerInterface getQueryContainer()
28
 * @method \SprykerEco\Zed\FactFinderSdk\FactFinderSdkConfig getConfig()
29
 */
30
class FactFinderSdkBusinessFactory extends AbstractBusinessFactory
31
{
32
    /**
33
     * @SuppressWarnings(FactoryMethodReturnInterfaceRule)
34
     *
35
     * @param \Generated\Shared\Transfer\LocaleTransfer $localeTransfer
36
     *
37
     * @return void
38
     */
39
    public function createCsvFile(LocaleTransfer $localeTransfer)
40
    {
41
        $this->createFactFinderProductExporter($this->createCsvFileWriter(), $localeTransfer)->export();
42
    }
43
44
    /**
45
     * @return \SprykerEco\Zed\FactFinderSdk\Dependency\Facade\FactFinderSdkToStoreInterface
46
     */
47
    protected function getStoreFacade()
48
    {
49
        return $this->getProvidedDependency(FactFinderSdkDependencyProvider::STORE_FACADE);
50
    }
51
52
    /**
53
     * @return \SprykerEco\Zed\FactFinderSdk\Dependency\Facade\FactFinderSdkToCurrencyInterface
54
     */
55
    protected function getCurrencyFacade()
56
    {
57
        return $this->getProvidedDependency(FactFinderSdkDependencyProvider::CURRENCY_FACADE);
58
    }
59
60
    /**
61
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Writer\FileWriterInterface
62
     */
63
    protected function createCsvFileWriter()
64
    {
65
        return new CsvFileWriter();
66
    }
67
68
    /**
69
     * @param \SprykerEco\Zed\FactFinderSdk\Business\Writer\FileWriterInterface $fileWriter
70
     * @param \Generated\Shared\Transfer\LocaleTransfer $localeTransfer
71
     *
72
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Exporter\FactFinderSdkProductExporterInterface
73
     */
74
    protected function createFactFinderProductExporter(FileWriterInterface $fileWriter, LocaleTransfer $localeTransfer)
75
    {
76
        return new FactFinderSdkProductExporter(
77
            $fileWriter,
78
            $localeTransfer,
79
            $this->getConfig(),
80
            $this->getQueryContainer(),
81
            $this->getCurrencyFacade(),
82
            $this->getStoreFacade(),
83
            $this->getExpanders()
84
        );
85
    }
86
87
    /**
88
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface[]
89
     */
90
    protected function getExpanders()
91
    {
92
        return [
93
            $this->createFactFinderSdkCategoryExpander(),
94
            $this->createFactFinderSdkPriceExpander(),
95
            $this->createFactFinderSdkAttributesExpander(),
96
            $this->createFactFinderSdkUrlExpander(),
97
            $this->createFactFinderSdkDescriptionExpander(),
98
            $this->createFactFinderSdkReviewExpander(),
99
            $this->createFactFinderSdkTimestampExpander(),
100
            $this->createFactFinderSdkIsNewExpander(),
101
        ];
102
    }
103
104
    /**
105
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
106
     */
107
    public function createFactFinderSdkCategoryExpander(): FactFinderSdkExpanderInterface
108
    {
109
        return new FactFinderSdkCategoryExpander($this->getQueryContainer(), $this->getConfig());
110
    }
111
112
    /**
113
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
114
     */
115
    public function createFactFinderSdkPriceExpander(): FactFinderSdkExpanderInterface
116
    {
117
        return new FactFinderSdkPriceExpander($this->getQueryContainer(), $this->getConfig());
118
    }
119
120
    /**
121
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
122
     */
123
    public function createFactFinderSdkAttributesExpander(): FactFinderSdkExpanderInterface
124
    {
125
        return new FactFinderSdkAttributesExpander($this->getQueryContainer(), $this->getConfig());
126
    }
127
128
    /**
129
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
130
     */
131
    public function createFactFinderSdkUrlExpander(): FactFinderSdkExpanderInterface
132
    {
133
        return new FactFinderSdkUrlExpander($this->getQueryContainer(), $this->getConfig());
134
    }
135
136
    /**
137
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
138
     */
139
    public function createFactFinderSdkDescriptionExpander(): FactFinderSdkExpanderInterface
140
    {
141
        return new FactFinderSdkDescriptionExpander($this->getQueryContainer(), $this->getConfig());
142
    }
143
144
    /**
145
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
146
     */
147
    public function createFactFinderSdkReviewExpander(): FactFinderSdkExpanderInterface
148
    {
149
        return new FactFinderSdkReviewExpander($this->getQueryContainer(), $this->getConfig());
150
    }
151
152
    /**
153
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
154
     */
155
    public function createFactFinderSdkTimestampExpander(): FactFinderSdkExpanderInterface
156
    {
157
        return new FactFinderSdkTimestampExpander($this->getQueryContainer(), $this->getConfig());
158
    }
159
160
    /**
161
     * @return \SprykerEco\Zed\FactFinderSdk\Business\Expander\FactFinderSdkExpanderInterface
162
     */
163
    public function createFactFinderSdkIsNewExpander(): FactFinderSdkExpanderInterface
164
    {
165
        return new FactFinderSdkIsNewExpander($this->getQueryContainer(), $this->getConfig());
166
    }
167
}
168