Completed
Pull Request — master (#139)
by
unknown
10:24
created

ModelClient   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 153
Duplicated Lines 6.54 %

Coupling/Cohesion

Components 1
Dependencies 8

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 7
c 1
b 0
f 1
lcom 1
cbo 8
dl 10
loc 153
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
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-docpage/
33
     *
34
     * @param int $modelId
35
     * @param array $params
36
     *
37
     * @return Models\ResponseModelGet
38
     */
39 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...
40
    {
41
        $resource = 'model/' . $modelId . '.json';
42
        $resource .= '?' . $this->buildQueryString($params);
43
        $response = $this->getServiceResponse($resource);
44
45
        $getModelResponse = new Models\ResponseModelGet($response);
46
47
        return $getModelResponse->getModel();
48
    }
49
50
    /**
51
     * Get model short information
52
     *
53
     * Returns short model of Yandex.Market service according to params.
54
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-info-docpage/
55
     *
56
     * @param int $modelId
57
     * @param array $params
58
     *
59
     * @return Models\ResponseModelInfoGet
60
     */
61
    public function getInfo($modelId, $params = array())
62
    {
63
        $resource = 'model/' . $modelId . '/info.json';
64
        $resource .= '?' . $this->buildQueryString($params);
65
        $response = $this->getServiceResponse($resource);
66
67
        $getModelInfoResponse = new Models\ResponseModelInfoGet($response);
68
69
        return $getModelInfoResponse;
70
    }
71
72
    /**
73
     * Get offers in model
74
     *
75
     * Returns offers list represented in model of Yandex.Market service according to params.
76
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-offers-docpage/
77
     *
78
     * @param int $modelId
79
     * @param array $params
80
     *
81
     * @return Models\ResponseModelOffersGet
82
     */
83
    public function getOffers($modelId, $params = array())
84
    {
85
        $resource = 'model/' . $modelId . '/offers.json';
86
        $resource .= '?' . $this->buildQueryString($params);
87
        $response = $this->getServiceResponse($resource);
88
89
        $getOffersResponse = new Models\ResponseModelOffersGet($response);
90
91
        return $getOffersResponse;
92
    }
93
94
    /**
95
     * Get outlets of model
96
     *
97
     * Returns outlets list where model of Yandex.Market service represented according to params.
98
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-outlets-docpage/
99
     *
100
     * @param int $modelId
101
     * @param array $params
102
     *
103
     * @return Models\ResponseModelOutletsGet
104
     */
105
    public function getOutlets($modelId, $params = array())
106
    {
107
        $resource = 'model/' . $modelId . '/outlets.json';
108
        $resource .= '?' . $this->buildQueryString($params);
109
        $response = $this->getServiceResponse($resource);
110
111
        $getOutletsResponse = new Models\ResponseModelOutletsGet($response);
112
113
        return $getOutletsResponse;
114
    }
115
116
    /**
117
     * Get reviews of model
118
     *
119
     * Returns reviews list where model of Yandex.Market service represented.
120
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-reviews-docpage/
121
     *
122
     * @param int $modelId
123
     *
124
     * @return Models\ResponseModelReviewsGet
125
     */
126
    public function getReviews($modelId)
127
    {
128
        $resource = 'model/' . $modelId . '/reviews.json';
129
        $response = $this->getServiceResponse($resource);
130
131
        $getReviewsResponse = new Models\ResponseModelReviewsGet($response);
132
133
        return $getReviewsResponse;
134
    }
135
136
    /**
137
     * Get model(-s) by name and params
138
     *
139
     * Returns model(-s) of Yandex.Market service by name and params.
140
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-match-docpage/
141
     *
142
     * @param array $params
143
     *
144
     * @return Models\ResponseModelMatchGet
145
     */
146
    public function getMatch($params = array())
147
    {
148
        $resource = 'model/match.json';
149
        $resource .= '?' . $this->buildQueryString($params);
150
        $response = $this->getServiceResponse($resource);
151
152
        $getModelMatchResponse = new Models\ResponseModelMatchGet($response);
153
154
        return $getModelMatchResponse;
155
    }
156
157
    /**
158
     * Get opinions of model
159
     *
160
     * Returns opinions list of Yandex.Market service model.
161
     * @see https://tech.yandex.ru/market/content-data/doc/dg/reference/model-id-opinion-docpage/
162
     *
163
     * @param int $modelId
164
     * @param array $params
165
     *
166
     * @return Models\ResponseModelOpinionsGet
167
     */
168
    public function getOpinions($modelId, $params = array())
169
    {
170
        $resource = 'model/' . $modelId . '/opinion.json';
171
        $resource .= '?' . $this->buildQueryString($params);
172
        $response = $this->getServiceResponse($resource);
173
174
        $modelOpinions = new Models\ResponseModelOpinionsGet($response);
175
176
        return $modelOpinions;
177
    }
178
}
179