¨4.0.1¨
This commit is contained in:
@@ -5,12 +5,20 @@ namespace FleetCart\Http\Controllers;
|
||||
use Exception;
|
||||
use FleetCart\Install\App;
|
||||
use FleetCart\Install\Store;
|
||||
use Illuminate\Http\Response;
|
||||
use FleetCart\Install\Database;
|
||||
use FleetCart\Install\Permission;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use FleetCart\Install\Requirement;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use FleetCart\Install\AdminAccount;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use FleetCart\Http\Requests\InstallRequest;
|
||||
use Jackiedo\DotenvEditor\Facades\DotenvEditor;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use FleetCart\Http\Middleware\RedirectIfInstalled;
|
||||
|
||||
class InstallController extends Controller
|
||||
@@ -20,50 +28,56 @@ class InstallController extends Controller
|
||||
$this->middleware(RedirectIfInstalled::class);
|
||||
}
|
||||
|
||||
public function preInstallation(Requirement $requirement)
|
||||
|
||||
public function installation(Requirement $requirement, Permission $permission): Factory|View|Application
|
||||
{
|
||||
return view('install.pre_installation', compact('requirement'));
|
||||
return view('install.install', compact('requirement', 'permission'));
|
||||
}
|
||||
|
||||
public function getConfiguration(Requirement $requirement)
|
||||
{
|
||||
if (! $requirement->satisfied()) {
|
||||
return redirect()->route('install.pre_installation');
|
||||
}
|
||||
|
||||
return view('install.configuration', compact('requirement'));
|
||||
}
|
||||
|
||||
public function postConfiguration(
|
||||
public function install(
|
||||
InstallRequest $request,
|
||||
Database $database,
|
||||
AdminAccount $admin,
|
||||
Store $store,
|
||||
App $app
|
||||
) {
|
||||
Database $database,
|
||||
AdminAccount $admin,
|
||||
Store $store,
|
||||
App $app
|
||||
): JsonResponse
|
||||
{
|
||||
@set_time_limit(0);
|
||||
|
||||
try {
|
||||
$database->setup($request->db);
|
||||
$admin->setup($request->admin);
|
||||
$store->setup($request->store);
|
||||
Artisan::call('optimize:clear');
|
||||
|
||||
$database->setup($request);
|
||||
$admin->setup($request);
|
||||
$store->setup($request);
|
||||
$app->setup();
|
||||
|
||||
DotenvEditor::setKey('APP_INSTALLED', 'true')->save();
|
||||
|
||||
Artisan::call('key:generate', ['--force' => true]);
|
||||
|
||||
$success = true;
|
||||
$message = "Congratulations! FleetCart installed successfully";
|
||||
} catch (Exception $e) {
|
||||
return back()->withInput()
|
||||
->with('error', $e->getMessage());
|
||||
$success = false;
|
||||
$message = $e->getMessage();
|
||||
|
||||
try {
|
||||
if (Schema::hasTable('migrations')) {
|
||||
Artisan::call('migrate:rollback', ['--force' => true]);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$message .= '<br><br>' . $e->getMessage();
|
||||
}
|
||||
} finally {
|
||||
return response()->json(
|
||||
[
|
||||
'success' => $success,
|
||||
'message' => $message,
|
||||
],
|
||||
$success ? Response::HTTP_OK : Response::HTTP_INTERNAL_SERVER_ERROR
|
||||
);
|
||||
}
|
||||
|
||||
return redirect('install/complete');
|
||||
}
|
||||
|
||||
public function complete()
|
||||
{
|
||||
if (config('app.installed')) {
|
||||
return redirect()->route('home');
|
||||
}
|
||||
|
||||
DotenvEditor::setKey('APP_INSTALLED', 'true')->save();
|
||||
|
||||
return view('install.complete');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user