1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Yandex PHP Library |
4
|
|
|
* |
5
|
|
|
* @copyright NIX Solutions Ltd. |
6
|
|
|
* @link https://github.com/nixsolutions/yandex-php-library |
7
|
|
|
*/ |
8
|
|
|
|
9
|
|
|
/** |
10
|
|
|
* @namespace |
11
|
|
|
*/ |
12
|
|
|
namespace Yandex\Market\Content\Clients; |
13
|
|
|
|
14
|
|
|
use Yandex\Market\Content\ContentClient; |
15
|
|
|
use Yandex\Market\Content\Models; |
16
|
|
|
|
17
|
|
|
/** |
18
|
|
|
* Class ModelClient |
19
|
|
|
* |
20
|
|
|
* @category Yandex |
21
|
|
|
* @package MarketContent |
22
|
|
|
* |
23
|
|
|
* @author Oleg Scherbakov <[email protected]> |
24
|
|
|
* @created 05.01.16 01:06 |
25
|
|
|
*/ |
26
|
|
|
class ModelClient extends ContentClient |
27
|
|
|
{ |
28
|
|
|
/** |
29
|
|
|
* Get model information |
30
|
|
|
* |
31
|
|
|
* Returns model of Yandex.Market service according to params. |
32
|
|
|
* |
33
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-docpage/ |
34
|
|
|
* |
35
|
|
|
* @param int $modelId |
36
|
|
|
* @param array $params |
37
|
|
|
* |
38
|
|
|
* @return Models\ResponseModelGet |
39
|
|
|
*/ |
40
|
1 |
View Code Duplication |
public function get($modelId, $params = array()) |
|
|
|
|
41
|
|
|
{ |
42
|
1 |
|
$resource = 'model/' . $modelId . '.json'; |
43
|
1 |
|
$resource .= '?' . $this->buildQueryString($params); |
44
|
1 |
|
$response = $this->getServiceResponse($resource); |
45
|
|
|
|
46
|
1 |
|
$getModelResponse = new Models\ResponseModelGet($response); |
47
|
|
|
|
48
|
1 |
|
return $getModelResponse->getModel(); |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
/** |
52
|
|
|
* Get model short information |
53
|
|
|
* |
54
|
|
|
* Returns short model of Yandex.Market service according to params. |
55
|
|
|
* |
56
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-info-docpage/ |
57
|
|
|
* |
58
|
|
|
* @param int $modelId |
59
|
|
|
* @param array $params |
60
|
|
|
* |
61
|
|
|
* @return Models\ResponseModelInfoGet |
62
|
|
|
*/ |
63
|
1 |
|
public function getInfo($modelId, $params = array()) |
64
|
|
|
{ |
65
|
1 |
|
$resource = 'model/' . $modelId . '/info.json'; |
66
|
1 |
|
$resource .= '?' . $this->buildQueryString($params); |
67
|
1 |
|
$response = $this->getServiceResponse($resource); |
68
|
|
|
|
69
|
1 |
|
$getModelInfoResponse = new Models\ResponseModelInfoGet($response); |
70
|
|
|
|
71
|
1 |
|
return $getModelInfoResponse; |
72
|
|
|
} |
73
|
|
|
|
74
|
|
|
/** |
75
|
|
|
* Get offers in model |
76
|
|
|
* |
77
|
|
|
* Returns offers list represented in model of Yandex.Market service according to params. |
78
|
|
|
* |
79
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-offers-docpage/ |
80
|
|
|
* |
81
|
|
|
* @param int $modelId |
82
|
|
|
* @param array $params |
83
|
|
|
* |
84
|
|
|
* @return Models\ResponseModelOffersGet |
85
|
|
|
*/ |
86
|
1 |
|
public function getOffers($modelId, $params = array()) |
87
|
|
|
{ |
88
|
1 |
|
$resource = 'model/' . $modelId . '/offers.json'; |
89
|
1 |
|
$resource .= '?' . $this->buildQueryString($params); |
90
|
1 |
|
$response = $this->getServiceResponse($resource); |
91
|
|
|
|
92
|
1 |
|
$getOffersResponse = new Models\ResponseModelOffersGet($response); |
93
|
|
|
|
94
|
1 |
|
return $getOffersResponse; |
95
|
|
|
} |
96
|
|
|
|
97
|
|
|
/** |
98
|
|
|
* Get outlets of model |
99
|
|
|
* |
100
|
|
|
* Returns outlets list where model of Yandex.Market service represented according to params. |
101
|
|
|
* |
102
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-outlets-docpage/ |
103
|
|
|
* |
104
|
|
|
* @param int $modelId |
105
|
|
|
* @param array $params |
106
|
|
|
* |
107
|
|
|
* @return Models\ResponseModelOutletsGet |
108
|
|
|
*/ |
109
|
1 |
|
public function getOutlets($modelId, $params = array()) |
110
|
|
|
{ |
111
|
1 |
|
$resource = 'model/' . $modelId . '/outlets.json'; |
112
|
1 |
|
$resource .= '?' . $this->buildQueryString($params); |
113
|
1 |
|
$response = $this->getServiceResponse($resource); |
114
|
|
|
|
115
|
1 |
|
$getOutletsResponse = new Models\ResponseModelOutletsGet($response); |
116
|
|
|
|
117
|
1 |
|
return $getOutletsResponse; |
118
|
|
|
} |
119
|
|
|
|
120
|
|
|
/** |
121
|
|
|
* Get reviews of model |
122
|
|
|
* |
123
|
|
|
* Returns reviews list where model of Yandex.Market service represented. |
124
|
|
|
* |
125
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-reviews-docpage/ |
126
|
|
|
* |
127
|
|
|
* @param int $modelId |
128
|
|
|
* |
129
|
|
|
* @return Models\ResponseModelReviewsGet |
130
|
|
|
*/ |
131
|
1 |
|
public function getReviews($modelId) |
132
|
|
|
{ |
133
|
1 |
|
$resource = 'model/' . $modelId . '/reviews.json'; |
134
|
1 |
|
$response = $this->getServiceResponse($resource); |
135
|
|
|
|
136
|
1 |
|
$getReviewsResponse = new Models\ResponseModelReviewsGet($response); |
137
|
|
|
|
138
|
1 |
|
return $getReviewsResponse; |
139
|
|
|
} |
140
|
|
|
|
141
|
|
|
/** |
142
|
|
|
* Get model(-s) by name and params |
143
|
|
|
* |
144
|
|
|
* Returns model(-s) of Yandex.Market service by name and params. |
145
|
|
|
* |
146
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-match-docpage/ |
147
|
|
|
* |
148
|
|
|
* @param array $params |
149
|
|
|
* |
150
|
|
|
* @return Models\ResponseModelMatchGet |
151
|
|
|
*/ |
152
|
1 |
|
public function getMatch($params = array()) |
153
|
|
|
{ |
154
|
1 |
|
$resource = 'model/match.json'; |
155
|
1 |
|
$resource .= '?' . $this->buildQueryString($params); |
156
|
1 |
|
$response = $this->getServiceResponse($resource); |
157
|
|
|
|
158
|
1 |
|
$getModelMatchResponse = new Models\ResponseModelMatchGet($response); |
159
|
|
|
|
160
|
1 |
|
return $getModelMatchResponse; |
161
|
|
|
} |
162
|
|
|
|
163
|
|
|
/** |
164
|
|
|
* Get opinions of model |
165
|
|
|
* |
166
|
|
|
* Returns opinions list of Yandex.Market service model. |
167
|
|
|
* |
168
|
|
|
* @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-opinion-docpage/ |
169
|
|
|
* |
170
|
|
|
* @param int $modelId |
171
|
|
|
* @param array $params |
172
|
|
|
* |
173
|
|
|
* @return Models\ResponseModelOpinionsGet |
174
|
|
|
*/ |
175
|
1 |
|
public function getOpinions($modelId, $params = array()) |
176
|
|
|
{ |
177
|
1 |
|
$resource = 'model/' . $modelId . '/opinion.json'; |
178
|
1 |
|
$resource .= '?' . $this->buildQueryString($params); |
179
|
1 |
|
$response = $this->getServiceResponse($resource); |
180
|
|
|
|
181
|
1 |
|
$modelOpinions = new Models\ResponseModelOpinionsGet($response); |
182
|
|
|
|
183
|
1 |
|
return $modelOpinions; |
184
|
|
|
} |
185
|
|
|
} |
186
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.