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

SlackErrorException   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
dl 0
loc 25
rs 10
c 1
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getResponse() 0 3 1
A getMessageFromResponse() 0 9 2
A __construct() 0 4 1
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
}