scheduled = $scheduled; $this->config = $config; } /** * Runs a speedtest * * @return \App\Speedtest */ public function handle() { if($this->config['healthchecks_enabled'] === true) { $this->healthcheck('start'); } $output = SpeedtestHelper::output(); $speedtest = SpeedtestHelper::runSpeedtest($output, $this->scheduled); if($speedtest == false) { if($this->config['healthchecks_enabled'] === true) { $this->healthcheck('fail'); } event(new SpeedtestFailedEvent()); } else { if($this->config['healthchecks_enabled'] === true) { $this->healthcheck('success'); } event(new SpeedtestCompleteEvent($speedtest)); } return $speedtest; } /** * Wrapper to reduce duplication of try/catch for hc * * @param String $method * @return void */ private function healthcheck(String $method) { try { if($method === 'start') { Healthcheck::start(); } if($method === 'success') { Healthcheck::success(); } if($method === 'fail') { Healthcheck::fail(); } } catch(Exception $e) { Log::error($e->getMessage()); } } }