Passed
Branch development (62ef01)
by Theodoros
06:18
created

CollectorManager::runCollector()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 5
dl 0
loc 11
rs 9.4285
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\Econda\Business\Manager;
9
10
use Generated\Shared\Transfer\BatchResultTransfer;
11
use Generated\Shared\Transfer\LocaleTransfer;
12
use Spryker\Shared\SqlCriteriaBuilder\CriteriaBuilder\CriteriaBuilderInterface;
13
use SprykerEco\Zed\Econda\Business\Collector\DatabaseCollectorInterface;
14
use SprykerEco\Zed\Econda\Business\Exporter\Writer\WriterInterface;
15
use SprykerEco\Zed\Econda\Business\Helper\ProgressBarHelper;
16
use SprykerEco\Zed\Econda\Persistence\EcondaQueryContainerInterface;
17
use Symfony\Component\Console\Output\OutputInterface;
18
19
class CollectorManager implements CollectorManagerInterface
20
{
21
    /**
22
     * @var \Spryker\Shared\SqlCriteriaBuilder\CriteriaBuilder\CriteriaBuilderInterface
23
     */
24
    protected $criteriaBuilder;
25
26
    /**
27
     * @var \SprykerEco\Zed\Econda\Persistence\EcondaQueryContainerInterface
28
     */
29
    protected $queryContainer;
30
31
    /** @var \SprykerEco\Zed\Econda\Business\Helper\ProgressBarHelper */
32
    protected $progressBarHelper;
33
34
    /**
35
     * CollectorManager constructor.
36
     *
37
     * @param \Spryker\Shared\SqlCriteriaBuilder\CriteriaBuilder\CriteriaBuilderInterface $criteriaBuilder
38
     * @param \SprykerEco\Zed\Econda\Persistence\EcondaQueryContainerInterface $queryContainer
39
     * @param \SprykerEco\Zed\Econda\Business\Helper\ProgressBarHelper $progressBarHelper
40
     */
41
    public function __construct(
42
        CriteriaBuilderInterface $criteriaBuilder,
43
        EcondaQueryContainerInterface $queryContainer,
44
        ProgressBarHelper $progressBarHelper
45
    ) {
46
        $this->criteriaBuilder = $criteriaBuilder;
47
        $this->queryContainer = $queryContainer;
48
        $this->progressBarHelper = $progressBarHelper;
49
    }
50
51
    /**
52
     * @param \SprykerEco\Zed\Econda\Business\Collector\DatabaseCollectorInterface $collector
53
     * @param \Generated\Shared\Transfer\LocaleTransfer $locale
54
     * @param \Generated\Shared\Transfer\BatchResultTransfer $result
55
     * @param \SprykerEco\Zed\Econda\Business\Exporter\Writer\WriterInterface $dataWriter
56
     * @param \Symfony\Component\Console\Output\OutputInterface $output
57
     *
58
     * @return void
59
     */
60
    public function runCollector(
61
        DatabaseCollectorInterface $collector,
62
        LocaleTransfer $locale,
63
        BatchResultTransfer $result,
64
        WriterInterface $dataWriter,
65
        OutputInterface $output
66
    ) {
67
        $batchCollection = $collector->createIteratorAndPrepareQuery($locale, $this->criteriaBuilder, $this->queryContainer);
68
        $progressBar = $this->progressBarHelper->startProgressBar($output, '', $batchCollection->count());
69
70
        $collector->exportDataToStore($batchCollection, $result, $dataWriter, $locale, $output, $progressBar);
71
    }
72
}
73