Completed
Pull Request — master (#139)
by
unknown
04:18
created

ModelClient   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 160
Duplicated Lines 6.25 %

Coupling/Cohesion

Components 1
Dependencies 8

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 1 Features 1
Metric Value
wmc 7
c 2
b 1
f 1
lcom 1
cbo 8
dl 10
loc 160
ccs 41
cts 41
cp 1
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A get() 10 10 1
A getInfo() 0 10 1
A getOffers() 0 10 1
A getOutlets() 0 10 1
A getReviews() 0 9 1
A getMatch() 0 10 1
A getOpinions() 0 10 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

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())
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

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.

Loading history...
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