GuzzleRequestHealthIndicator   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 3
c 2
b 1
f 0
lcom 1
cbo 4
dl 0
loc 38
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A doHealthCheck() 0 17 2
1
<?php
2
3
namespace Actuator\Health\Indicator;
4
5
use Actuator\Health\HealthBuilder;
6
use Guzzle\Http\Message\Request;
7
use Guzzle\Http\Message\Response;
8
9
class GuzzleRequestHealthIndicator extends AbstractHealthIndicator
10
{
11
    /**
12
     * @var Request
13
     */
14
    private $request;
15
16
    public function __construct(Request $request)
17
    {
18
        $this->request = $request;
19
    }
20
21
    /**
22
     * Actual health check logic.
23
     *
24
     * @param HealthBuilder $builder
25
     *
26
     * @throws \Exception any Exception that should create a Status::DOWN
27
     *                    system status.
28
     */
29
    protected function doHealthCheck(HealthBuilder $builder)
30
    {
31
        /** @var Response $response */
32
        $response = $this->request
33
            ->send();
34
35
        $builder->withDetail('statusCode', $response->getStatusCode());
36
37
        if (!$response->isSuccessful()) {
38
            $builder->down()
39
                ->withDetail('body', $response->getBody(true));
40
41
            return;
42
        }
43
44
        $builder->up();
45
    }
46
}
47