Code Duplication    Length = 29-30 lines in 2 locations

src/Yandex/Common/AbstractServiceClient.php 1 location

@@ 284-312 (lines=29) @@
281
     * @throws Exception\YandexException
282
     * @return Response
283
     */
284
    protected function sendRequest($method, $uri, array $options = [])
285
    {
286
        try {
287
            $response = $this->getClient()->request($method, $uri, $options);
288
        } catch (ClientException $ex) {
289
            // get error from response
290
            $decodedResponseBody = $this->getDecodedBody($ex->getResponse()->getBody());
291
            $code = $ex->getResponse()->getStatusCode();
292
293
            // handle a service error message
294
            if (is_array($decodedResponseBody)
295
                && isset($decodedResponseBody['error'], $decodedResponseBody['message'])
296
            ) {
297
                switch ($decodedResponseBody['error']) {
298
                    case 'MissedRequiredArguments':
299
                        throw new MissedArgumentException($decodedResponseBody['message']);
300
                    case 'AssistantProfileNotFound':
301
                        throw new ProfileNotFoundException($decodedResponseBody['message']);
302
                    default:
303
                        throw new YandexException($decodedResponseBody['message'], $code);
304
                }
305
            }
306
307
            // unknown error
308
            throw $ex;
309
        }
310
311
        return $response;
312
    }
313
314
    /**
315
     * @param $body

src/Yandex/Webmaster/WebmasterClient.php 1 location

@@ 103-132 (lines=30) @@
100
     * @throws ProfileNotFoundException
101
     * @throws YandexException
102
     */
103
    protected function sendRequest($method, $uri, array $options = [])
104
    {
105
        //todo: implement Webmaster Exceptions
106
        try {
107
            $response = $this->getClient()->request($method, $uri, $options);
108
        } catch (ClientException $ex) {
109
            // get error from response
110
            $decodedResponseBody = $this->getDecodedBody($ex->getResponse()->getBody());
111
            $code = $ex->getResponse()->getStatusCode();
112
113
            // handle a service error message
114
            if (is_array($decodedResponseBody)
115
                && isset($decodedResponseBody['error'], $decodedResponseBody['message'])
116
            ) {
117
                switch ($decodedResponseBody['error']) {
118
                    case 'MissedRequiredArguments':
119
                        throw new MissedArgumentException($decodedResponseBody['message']);
120
                    case 'AssistantProfileNotFound':
121
                        throw new ProfileNotFoundException($decodedResponseBody['message']);
122
                    default:
123
                        throw new YandexException($decodedResponseBody['message'], $code);
124
                }
125
            }
126
127
            // unknown error
128
            throw $ex;
129
        }
130
131
        return $response;
132
    }
133
134
    /**
135
     * @param string $resource