CallbackCheck   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A checkStatus() 0 9 2
1
<?php
2
namespace BretRZaun\StatusPage\Check;
3
4
use BretRZaun\StatusPage\Result;
5
6
class CallbackCheck extends AbstractCheck
7
{
8
9
    /**
10
     * @var callable
11
     */
12
    protected $callback;
13
14
    /**
15
     * Constructor
16
     *
17
     * @param string $label
18
     * @param callable $callback
19
     */
20
    public function __construct(string $label, callable $callback)
21
    {
22
        parent::__construct($label);
23
        $this->callback = $callback;
24
    }
25
26
    /**
27
     * Check callback
28
     *
29
     * @return Result
30
     */
31
    public function checkStatus(): Result
32
    {
33
        $result = new Result($this->label);
34
        try {
35
            \call_user_func($this->callback, $result);
36
        } catch (\Throwable $e) {
37
            $result->setError($e->getMessage());
38
        }
39
        return $result;
40
    }
41
}
42