ConverterFactory   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 143
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 13
eloc 30
dl 0
loc 143
rs 10
c 0
b 0
f 0

13 Methods

Rating   Name   Duplication   Size   Complexity  
A createSimilarRecordsResponseConverter() 0 3 1
A createDataAdvisorQuestionConverter() 0 4 1
A createSuggestResponseConverter() 0 3 1
A createDataPagingConverter() 0 4 1
A __construct() 0 3 1
A createTagCloudResponseConverter() 0 3 1
A createDataFilterGroup() 0 4 1
A createDataRecordConverter() 0 3 1
A createDataItemConverter() 0 3 1
A createTrackingResponseConverter() 0 3 1
A createRecommendationResponseConverter() 0 5 1
A createSearchResponseConverter() 0 10 1
A createProductCampaignResponseConverter() 0 6 1
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\Client\FactFinderSdk\Business\Api\Converter;
9
10
use FACTFinder\Adapter\ProductCampaign as FactFinderProductCampaignAdapter;
11
use FACTFinder\Adapter\Recommendation as FactFinderRecommendationAdapter;
12
use FACTFinder\Adapter\Search as FactFinderSearchAdapter;
13
use FACTFinder\Adapter\SimilarRecords as FactFinderSimilarRecordsAdapter;
14
use FACTFinder\Adapter\Suggest as FactFinderSuggestAdapter;
15
use FACTFinder\Adapter\TagCloud as FactFinderTagCloudAdapter;
16
use FACTFinder\Adapter\Tracking as FactFinderTrackingAdapter;
17
use SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\AdvisorQuestionConverter;
18
use SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\FilterGroupConverter;
19
use SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\ItemConverter;
20
use SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\PagingConverter;
21
use SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\RecordConverter;
22
use SprykerEco\Client\FactFinderSdk\FactFinderSdkConfig;
23
24
class ConverterFactory
25
{
26
    /**
27
     * @var \SprykerEco\Client\FactFinderSdk\FactFinderSdkConfig
28
     */
29
    protected $factFinderSdkConfig;
30
31
    /**
32
     * @param \SprykerEco\Client\FactFinderSdk\FactFinderSdkConfig $factFinderSdkConfig
33
     */
34
    public function __construct(FactFinderSdkConfig $factFinderSdkConfig)
35
    {
36
        $this->factFinderSdkConfig = $factFinderSdkConfig;
37
    }
38
39
    /**
40
     * @param \FACTFinder\Adapter\Search $searchAdapter
41
     *
42
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
43
     */
44
    public function createSearchResponseConverter(FactFinderSearchAdapter $searchAdapter)
45
    {
46
        return new SearchResponseConverter(
47
            $searchAdapter,
48
            $this->createDataPagingConverter(),
49
            $this->createDataItemConverter(),
50
            $this->createDataRecordConverter(),
51
            $this->createDataFilterGroup(),
52
            $this->createDataAdvisorQuestionConverter(),
53
            $this->factFinderSdkConfig
54
        );
55
    }
56
57
    /**
58
     * @param \FACTFinder\Adapter\Recommendation $recommendationAdapter
59
     *
60
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
61
     */
62
    public function createRecommendationResponseConverter(FactFinderRecommendationAdapter $recommendationAdapter)
63
    {
64
        return new RecommendationResponseConverter(
65
            $recommendationAdapter,
66
            $this->factFinderSdkConfig
67
        );
68
    }
69
70
    /**
71
     * @param \FACTFinder\Adapter\Suggest $suggestAdapter
72
     *
73
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
74
     */
75
    public function createSuggestResponseConverter(FactFinderSuggestAdapter $suggestAdapter)
76
    {
77
        return new SuggestResponseConverter($suggestAdapter);
78
    }
79
80
    /**
81
     * @param \FACTFinder\Adapter\TagCloud $tagCloudAdapter
82
     *
83
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
84
     */
85
    public function createTagCloudResponseConverter(FactFinderTagCloudAdapter $tagCloudAdapter)
86
    {
87
        return new TagCloudResponseConverter($tagCloudAdapter);
88
    }
89
90
    /**
91
     * @param \FACTFinder\Adapter\Tracking $trackingAdapter
92
     *
93
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
94
     */
95
    public function createTrackingResponseConverter(FactFinderTrackingAdapter $trackingAdapter)
96
    {
97
        return new TrackingResponseConverter($trackingAdapter);
98
    }
99
100
    /**
101
     * @param \FACTFinder\Adapter\SimilarRecords $similarRecordsAdapter
102
     *
103
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
104
     */
105
    public function createSimilarRecordsResponseConverter(FactFinderSimilarRecordsAdapter $similarRecordsAdapter)
106
    {
107
        return new SimilarRecordsResponseConverter($similarRecordsAdapter);
108
    }
109
110
    /**
111
     * @param \FACTFinder\Adapter\ProductCampaign $productCampaignAdapter
112
     *
113
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\ConverterInterface
114
     */
115
    public function createProductCampaignResponseConverter(FactFinderProductCampaignAdapter $productCampaignAdapter)
116
    {
117
        return new ProductCampaignResponseConverter(
118
            $productCampaignAdapter,
119
            $this->createDataRecordConverter(),
120
            $this->createDataAdvisorQuestionConverter()
121
        );
122
    }
123
124
    /**
125
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\ItemConverterInterface
126
     */
127
    public function createDataItemConverter()
128
    {
129
        return new ItemConverter();
130
    }
131
132
    /**
133
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\PagingConverterInterface
134
     */
135
    public function createDataPagingConverter()
136
    {
137
        return new PagingConverter(
138
            $this->createDataItemConverter()
139
        );
140
    }
141
142
    /**
143
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\RecordConverterInterface
144
     */
145
    public function createDataRecordConverter()
146
    {
147
        return new RecordConverter($this->factFinderSdkConfig);
148
    }
149
150
    /**
151
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\FilterGroupConverterInterface
152
     */
153
    public function createDataFilterGroup()
154
    {
155
        return new FilterGroupConverter(
156
            $this->createDataItemConverter()
157
        );
158
    }
159
160
    /**
161
     * @return \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\AdvisorQuestionConverterInterface
162
     */
163
    public function createDataAdvisorQuestionConverter()
164
    {
165
        return new AdvisorQuestionConverter(
166
            $this->createDataItemConverter()
167
        );
168
    }
169
}
170