Passed
Pull Request — master (#53)
by
unknown
01:19
created

SlackErrorException::getMessageFromResponse()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 5
nc 2
nop 0
dl 0
loc 9
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace Nexy\Slack\Exception;
4
5
use Psr\Http\Message\ResponseInterface;
6
7
class SlackErrorException extends \RuntimeException
8
{
9
    /** @var ResponseInterface */
10
    protected $response;
11
12
    public function __construct(ResponseInterface $response)
13
    {
14
        $this->response = $response;
15
        parent::__construct($this->getMessageFromResponse(), $response->getStatusCode());
16
    }
17
18
    public function getResponse(): ResponseInterface
19
    {
20
        return $this->response;
21
    }
22
23
    protected function getMessageFromResponse()
24
    {
25
        $data = json_decode($this->response->getBody()->getContents(), true);
26
        $message = 'Slack error: ';
27
28
        foreach($data['response_metadata']['messages']??[] as $item) {
29
            $message .= $item.'.';
30
        }
31
        return $message;
32
    }
33
}