controller refactoring part 25

This commit is contained in:
Peter Papp
2021-07-22 07:49:25 +02:00
parent 6d8a7a429c
commit 5167f082f7
50 changed files with 252 additions and 481 deletions

View File

@@ -0,0 +1,26 @@
<?php
namespace Domain\SetupWizard\Actions;
use Illuminate\Support\Facades\Storage;
class CreateDiskDirectoriesAction
{
/**
* Create default folders which application to process files.
*/
public function __invoke(): void
{
collect(['avatars', 'chunks', 'system', 'files', 'temp', 'zip'])
->each(function ($directory) {
// Create directory for local driver
Storage::disk('local')
->makeDirectory($directory);
// Create directory for external driver
Storage::makeDirectory($directory);
});
}
}

View File

@@ -2,12 +2,14 @@
namespace Domain\SetupWizard\Controllers;
use App\Users\Models\User;
use Domain\Localization\Actions\SeedDefaultLanguageAction;
use Domain\Pages\Actions\SeedDefaultPagesAction;
use Domain\Settings\Actions\SeedDefaultSettingsAction;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Domain\SetupWizard\Services\SetupService;
/**
* Create and login admin account
@@ -15,9 +17,10 @@ use Domain\SetupWizard\Services\SetupService;
class CreateAdminAccountController extends Controller
{
public function __construct(
public SetupService $setup,
) {
}
public SeedDefaultPagesAction $seedDefaultPages,
public SeedDefaultLanguageAction $seedDefaultLanguage,
public SeedDefaultSettingsAction $seedDefaultSettingsAction,
) {}
public function __invoke(
Request $request
@@ -70,9 +73,9 @@ class CreateAdminAccountController extends Controller
});
// Set up application
$this->setup->seed_default_pages();
$this->setup->seed_default_settings($request->input('license'));
$this->setup->seed_default_language();
($this->seedDefaultPages)();
($this->seedDefaultSettingsAction)($request->input('license'));
($this->seedDefaultLanguage)();
// Login account
if (Auth::attempt($request->only(['email', 'password']))) {

View File

@@ -1,66 +0,0 @@
<?php
namespace Domain\SetupWizard\Services;
use Domain\Pages\Models\Page;
use Domain\Settings\Models\Setting;
use Illuminate\Support\Facades\Storage;
use Domain\Localization\Models\Language;
class SetupService
{
/**
* Create default folders which application to process files.
*/
public function create_directories()
{
collect(['avatars', 'chunks', 'system', 'files', 'temp', 'zip'])
->each(function ($directory) {
// Create directory for local driver
Storage::disk('local')
->makeDirectory($directory);
// Create directory for external driver
Storage::makeDirectory($directory);
});
}
/**
* Store default pages content like Terms of Service, Privacy Policy and Cookie Policy into database
*/
public function seed_default_pages()
{
collect(config('content.pages'))
->each(function ($page) {
Page::updateOrCreate($page);
});
}
/**
* Store default VueFileManager settings into database
*
* @param $license
*/
public function seed_default_settings($license)
{
collect(config('content.content.' . strtolower($license)))
->each(function ($content) {
Setting::forceCreate($content);
});
}
/**
* Store default VueFileManager settings into database
*/
public function seed_default_language()
{
Language::create([
'name' => 'English',
'locale' => 'en',
]);
Setting::create([
'name' => 'language',
'value' => 'en',
]);
}
}