70 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace FleetCart\Http\Controllers;
 | |
| 
 | |
| use Exception;
 | |
| use FleetCart\Install\App;
 | |
| use FleetCart\Install\Store;
 | |
| use FleetCart\Install\Database;
 | |
| use FleetCart\Install\Requirement;
 | |
| use Illuminate\Routing\Controller;
 | |
| use FleetCart\Install\AdminAccount;
 | |
| use FleetCart\Http\Requests\InstallRequest;
 | |
| use Jackiedo\DotenvEditor\Facades\DotenvEditor;
 | |
| use FleetCart\Http\Middleware\RedirectIfInstalled;
 | |
| 
 | |
| class InstallController extends Controller
 | |
| {
 | |
|     public function __construct()
 | |
|     {
 | |
|         $this->middleware(RedirectIfInstalled::class);
 | |
|     }
 | |
| 
 | |
|     public function preInstallation(Requirement $requirement)
 | |
|     {
 | |
|         return view('install.pre_installation', compact('requirement'));
 | |
|     }
 | |
| 
 | |
|     public function getConfiguration(Requirement $requirement)
 | |
|     {
 | |
|         if (! $requirement->satisfied()) {
 | |
|             return redirect()->route('install.pre_installation');
 | |
|         }
 | |
| 
 | |
|         return view('install.configuration', compact('requirement'));
 | |
|     }
 | |
| 
 | |
|     public function postConfiguration(
 | |
|         InstallRequest $request,
 | |
|         Database $database,
 | |
|         AdminAccount $admin,
 | |
|         Store $store,
 | |
|         App $app
 | |
|     ) {
 | |
|         @set_time_limit(0);
 | |
| 
 | |
|         try {
 | |
|             $database->setup($request->db);
 | |
|             $admin->setup($request->admin);
 | |
|             $store->setup($request->store);
 | |
|             $app->setup();
 | |
|         } catch (Exception $e) {
 | |
|             return back()->withInput()
 | |
|                 ->with('error', $e->getMessage());
 | |
|         }
 | |
| 
 | |
|         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');
 | |
|     }
 | |
| }
 |