. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\System; use Artisan; use FireflyIII\Http\Controllers\Controller; use Laravel\Passport\Passport; use Log; use phpseclib\Crypt\RSA; /** * Class InstallController */ class InstallController extends Controller { /** @noinspection MagicMethodsValidityInspection */ /** * InstallController constructor. */ public function __construct() { // empty on purpose. } /** * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function index() { return view('install.index'); } /** * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function keys() { // create keys manually because for some reason the passport namespace // does not exist $rsa = new RSA(); $keys = $rsa->createKey(4096); list($publicKey, $privateKey) = [ Passport::keyPath('oauth-public.key'), Passport::keyPath('oauth-private.key'), ]; if (file_exists($publicKey) || file_exists($privateKey)) { return response()->json(['OK']); } file_put_contents($publicKey, array_get($keys, 'publickey')); file_put_contents($privateKey, array_get($keys, 'privatekey')); return response()->json(['OK']); } /** * @return \Illuminate\Http\JsonResponse */ public function migrate() { Log::debug('Am now calling migrate routine...'); Artisan::call('migrate', ['--seed' => true, '--force' => true]); Log::debug(Artisan::output()); return response()->json(['OK']); } /** * @return \Illuminate\Http\JsonResponse */ public function upgrade() { Log::debug('Am now calling upgrade database routine...'); Artisan::call('firefly:upgrade-database'); Log::debug(Artisan::output()); return response()->json(['OK']); } /** * @return \Illuminate\Http\JsonResponse */ public function verify() { Log::debug('Am now calling verify database routine...'); Artisan::call('firefly:verify'); Log::debug(Artisan::output()); return response()->json(['OK']); } }