Completed
Push — master ( f52567...d70777 )
by Bret R.
03:35
created

CallbackCheck::check()   A

Complexity

Conditions 3
Paths 5

Size

Total Lines 15
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 11
nc 5
nop 0
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 $label
18
     * @param callable $callback
19
     */
20
    public function __construct($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 check()
32
    {
33
        $result = new Result($this->label);
34
        try {
35
            $return = call_user_func($this->callback);
36
            if ($return !== true) {
37
                $result->setSuccess(false);
38
                $result->setError($return);
39
            }
40
        } catch (\Exception $e) {
41
            $result->setSuccess(false);
42
            $result->setError($e->getMessage());
43
        }
44
        return $result;
45
    }
46
}
47