Source of file EnvironmentCheckSuiteResult.php
Size: 2,814 Bytes - Last Modified: 2021-12-23T10:30:03+00:00
/var/www/docs.ssmods.com/process/src/src/EnvironmentCheckSuiteResult.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | <?php namespace SilverStripe\EnvironmentCheck; use InvalidArgumentException; use SilverStripe\ORM\ArrayList; use SilverStripe\View\ArrayData; use SilverStripe\View\ViewableData; /** * A single set of results from running an EnvironmentCheckSuite * * @package environmentcheck */ class EnvironmentCheckSuiteResult extends ViewableData { /** * @var ArrayList */ protected $details; /** * @var int */ protected $worst = 0; public function __construct() { parent::__construct(); $this->details = new ArrayList(); } /** * @param int $status * @param string $message * @param string $checkIdentifier */ public function addResult($status, $message, $checkIdentifier) { $this->details->push(new ArrayData([ 'Check' => $checkIdentifier, 'Status' => $this->statusText($status), 'StatusCode' => $status, 'Message' => $message, ])); $this->worst = max($this->worst, $status); } /** * Returns true if there are no errors. * * @return bool */ public function ShouldPass() { return $this->worst <= EnvironmentCheck::WARNING; } /** * Returns overall (i.e. worst) status as a string. * * @return string */ public function Status() { return $this->statusText($this->worst); } /** * Returns detailed status information about each check. * * @return ArrayList */ public function Details() { return $this->details; } /** * Convert the final result status and details to JSON. * * @return string */ public function toJSON() { $result = [ 'Status' => $this->Status(), 'ShouldPass' => $this->ShouldPass(), 'Checks' => [] ]; foreach ($this->details as $detail) { $result['Checks'][] = $detail->toMap(); } return json_encode($result); } /** * Return a text version of a status code. * * @param int $status * @return string * @throws InvalidArgumentException */ protected function statusText($status) { switch ($status) { case EnvironmentCheck::ERROR: return 'ERROR'; break; case EnvironmentCheck::WARNING: return 'WARNING'; break; case EnvironmentCheck::OK: return 'OK'; break; case 0: return 'NO CHECKS'; break; default: throw new InvalidArgumentException("Bad environment check status '$status'"); break; } } } |