Code Duplication    Length = 29-30 lines in 2 locations

src/Yandex/Webmaster/WebmasterClient.php 1 location

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

src/Yandex/Common/AbstractServiceClient.php 1 location

@@ 306-334 (lines=29) @@
303
     * @throws Exception\YandexException
304
     * @return Response
305
     */
306
    protected function sendRequest($method, $uri, array $options = [])
307
    {
308
        try {
309
            $response = $this->getClient()->request($method, $uri, $options);
310
        } catch (ClientException $ex) {
311
            // get error from response
312
            $decodedResponseBody = $this->getDecodedBody($ex->getResponse()->getBody());
313
            $code = $ex->getResponse()->getStatusCode();
314
315
            // handle a service error message
316
            if (is_array($decodedResponseBody)
317
                && isset($decodedResponseBody['error'], $decodedResponseBody['message'])
318
            ) {
319
                switch ($decodedResponseBody['error']) {
320
                    case 'MissedRequiredArguments':
321
                        throw new MissedArgumentException($decodedResponseBody['message']);
322
                    case 'AssistantProfileNotFound':
323
                        throw new ProfileNotFoundException($decodedResponseBody['message']);
324
                    default:
325
                        throw new YandexException($decodedResponseBody['message'], $code);
326
                }
327
            }
328
329
            // unknown error
330
            throw $ex;
331
        }
332
333
        return $response;
334
    }
335
336
    /**
337
     * @param $body