diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 87d4fd13d7f9..26f92fbe749e 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -67,6 +67,32 @@ class SetupController extends Controller return response('Oops, something went wrong. Check your logs.'); /* We should never reach this block, but just in case. */ } + try { + $db = SystemHealth::dbCheck($request); + + if ($db['success'] == false) { + throw new \Exception($db['message']); + } + } catch(\Exception $e) { + return response([ + 'message' => 'Oops, connection to database was not successful.', + 'error' => $e->getMessage(), + ]); + } + + try { + $smtp = SystemHealth::testMailServer($request); + + if ($smtp['success'] == false) { + throw new \Exception($smtp['message']); + } + } catch (\Exception $e) { + return response([ + 'message' => 'Oops, connection to mail server was not successful.', + 'error' => $e->getMessage(), + ]); + } + $mail_driver = $request->input('mail_driver'); $url = $request->input('url'); @@ -166,15 +192,13 @@ class SetupController extends Controller */ public function checkMail(CheckMailRequest $request) { - info($request->all()); - try { - $response_array = SystemHealth::testMailServer($request); + $response = SystemHealth::testMailServer($request); - if (count($response_array) == 0) { + if ($response['success']) { return response([], 200); } else { - return response()->json(['message' => $response_array[0]], 400); + return response()->json(['message' => $response['message']], 400); } } catch (Exception $e) { info(['message' => $e->getMessage(), 'action' => 'SetupController::checkMail()']); @@ -185,10 +209,10 @@ class SetupController extends Controller private function failsafeMailCheck($request) { - $response_array = SystemHealth::testMailServer($request); + $response = SystemHealth::testMailServer($request); - if ($response_array instanceof Response) { - return true; + if ($response['success']) { + true; } return false; diff --git a/app/Utils/SystemHealth.php b/app/Utils/SystemHealth.php index c758d731f76b..e8d780f9f6dc 100644 --- a/app/Utils/SystemHealth.php +++ b/app/Utils/SystemHealth.php @@ -160,7 +160,7 @@ class SystemHealth { $result = ['success' => false]; - if ($request && $request instanceof CheckDatabaseRequest) { + if ($request) { config(['database.connections.db-ninja-01.host'=> $request->input('db_host')]); config(['database.connections.db-ninja-01.database'=> $request->input('db_database')]); config(['database.connections.db-ninja-01.username'=> $request->input('db_username')]); @@ -191,6 +191,7 @@ class SystemHealth } catch (Exception $e) { $result[] = [config('database.connections.'.config('database.default').'.database') => false]; $result['success'] = false; + $result['message'] = $e->getMessage(); } } } @@ -209,7 +210,7 @@ class SystemHealth return []; } - if ($request && $request instanceof CheckMailRequest) { + if ($request) { config(['mail.driver' => $request->input('mail_driver')]); config(['mail.host' => $request->input('mail_host')]); config(['mail.port' => $request->input('mail_port')]); @@ -223,21 +224,10 @@ class SystemHealth try { Mail::to(config('mail.from.address'))->send(new TestMailServer('Email Server Works!', config('mail.from.address'))); } catch (Exception $e) { - return [$e->getMessage()]; + return ['success' => false, 'message' => $e->getMessage()]; } - /* - * 'message' => 'count(): Parameter must be an array or an object that implements Countable', - * 'action' => 'SetupController::checkMail()', - * - * count(Mail::failures()) - */ - - if (Mail::failures() > 0) { - return Mail::failures(); - } - - return response()->json(['message' => 'Success'], 200); + return ['success' => true]; } private static function checkEnvWritable()