added install request

This commit is contained in:
Denis Duliçi 2022-02-14 18:00:44 +03:00
parent 6b10f5a200
commit a179232734
8 changed files with 111 additions and 11 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Install;
use App\Abstracts\Http\Controller;
use App\Http\Requests\Module\Install as InstallRequest;
use App\Events\Install\UpdateCacheCleared;
use App\Events\Install\UpdateCopied;
use App\Events\Install\UpdateDownloaded;
@ -13,7 +14,6 @@ use App\Jobs\Install\FinishUpdate;
use App\Jobs\Install\UnzipFile;
use App\Utilities\Versions;
use Illuminate\Support\Facades\Cache;
use Illuminate\Http\Request;
class Updates extends Controller
{
@ -110,7 +110,7 @@ class Updates extends Controller
*
* @return Response
*/
public function steps(Request $request)
public function steps(InstallRequest $request)
{
$steps = [];
@ -161,7 +161,7 @@ class Updates extends Controller
*
* @return Response
*/
public function download(Request $request)
public function download(InstallRequest $request)
{
set_time_limit(900); // 15 minutes
@ -197,7 +197,7 @@ class Updates extends Controller
*
* @return Response
*/
public function unzip(Request $request)
public function unzip(InstallRequest $request)
{
set_time_limit(900); // 15 minutes
@ -233,7 +233,7 @@ class Updates extends Controller
*
* @return Response
*/
public function copyFiles(Request $request)
public function copyFiles(InstallRequest $request)
{
set_time_limit(900); // 15 minutes
@ -269,7 +269,7 @@ class Updates extends Controller
*
* @return Response
*/
public function finish(Request $request)
public function finish(InstallRequest $request)
{
set_time_limit(900); // 15 minutes

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Modules;
use App\Abstracts\Http\Controller;
use App\Http\Requests\Module\Install as InstallRequest;
use App\Jobs\Install\CopyFiles;
use App\Jobs\Install\DisableModule;
use App\Jobs\Install\DownloadFile;
@ -81,7 +82,7 @@ class Item extends Controller
*
* @return Response
*/
public function steps(Request $request)
public function steps(InstallRequest $request)
{
$steps = [];
@ -135,7 +136,7 @@ class Item extends Controller
*
* @return Response
*/
public function download(Request $request)
public function download(InstallRequest $request)
{
try {
$path = $this->dispatch(new DownloadFile($request['alias'], $request['version']));
@ -167,7 +168,7 @@ class Item extends Controller
*
* @return Response
*/
public function unzip(Request $request)
public function unzip(InstallRequest $request)
{
try {
$path = $this->dispatch(new UnzipFile($request['alias'], $request['path']));
@ -199,7 +200,7 @@ class Item extends Controller
*
* @return Response
*/
public function copy(Request $request)
public function copy(InstallRequest $request)
{
try {
$this->dispatch(new CopyFiles($request['alias'], $request['path']));
@ -233,7 +234,7 @@ class Item extends Controller
*
* @return Response
*/
public function install(Request $request)
public function install(InstallRequest $request)
{
try {
event(new \App\Events\Module\Installing($request['alias'], company_id()));

View File

@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests\Module;
use App\Abstracts\Http\FormRequest;
class Install extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'nullable|string',
'alias' => 'alpha_dash',
'version' => 'nullable|regex:/^[a-z0-9.]+$/i',
'installed' => 'nullable|regex:/^[a-z0-9.]+$/i',
'path' => 'nullable|string',
];
}
}

View File

@ -3,10 +3,13 @@
namespace App\Jobs\Install;
use App\Abstracts\Job;
use App\Traits\Modules;
use App\Utilities\Console;
class DisableModule extends Job
{
use Modules;
protected $alias;
protected $company_id;
@ -34,6 +37,8 @@ class DisableModule extends Job
*/
public function handle()
{
$this->authorize();
$command = "module:disable {$this->alias} {$this->company_id} {$this->locale}";
$result = Console::run($command);
@ -42,4 +47,14 @@ class DisableModule extends Job
throw new \Exception($result);
}
}
/**
* Determine if this action is applicable.
*/
public function authorize(): void
{
if (! $this->moduleExists($this->alias)) {
throw new \Exception("Module [{$this->alias}] not found.");
}
}
}

View File

@ -3,10 +3,13 @@
namespace App\Jobs\Install;
use App\Abstracts\Job;
use App\Traits\Modules;
use App\Utilities\Console;
class EnableModule extends Job
{
use Modules;
protected $alias;
protected $company_id;
@ -34,6 +37,8 @@ class EnableModule extends Job
*/
public function handle()
{
$this->authorize();
$command = "module:enable {$this->alias} {$this->company_id} {$this->locale}";
$result = Console::run($command);
@ -42,4 +47,14 @@ class EnableModule extends Job
throw new \Exception($result);
}
}
/**
* Determine if this action is applicable.
*/
public function authorize(): void
{
if (! $this->moduleExists($this->alias)) {
throw new \Exception("Module [{$this->alias}] not found.");
}
}
}

View File

@ -5,12 +5,15 @@ namespace App\Jobs\Install;
use App\Abstracts\Job;
use App\Interfaces\Listener\ShouldUpdateAllCompanies;
use App\Models\Module\Module;
use App\Traits\Modules;
use App\Utilities\Console;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Facades\File;
class FinishUpdate extends Job
{
use Modules;
protected $alias;
protected $new;
@ -37,6 +40,8 @@ class FinishUpdate extends Job
public function handle(): void
{
$this->authorize();
$companies = $this->getCompanies();
foreach ($companies as $company) {
@ -52,6 +57,16 @@ class FinishUpdate extends Job
}
}
/**
* Determine if this action is applicable.
*/
public function authorize(): void
{
if (! $this->moduleExists($this->alias)) {
throw new \Exception("Module [{$this->alias}] not found.");
}
}
public function getCompanies()
{
if ($this->alias == 'core') {

View File

@ -3,10 +3,13 @@
namespace App\Jobs\Install;
use App\Abstracts\Job;
use App\Traits\Modules;
use App\Utilities\Console;
class InstallModule extends Job
{
use Modules;
protected $alias;
protected $company_id;
@ -34,6 +37,8 @@ class InstallModule extends Job
*/
public function handle()
{
$this->authorize();
$command = "module:install {$this->alias} {$this->company_id} {$this->locale}";
$result = Console::run($command);
@ -44,4 +49,14 @@ class InstallModule extends Job
throw new \Exception($message);
}
}
/**
* Determine if this action is applicable.
*/
public function authorize(): void
{
if (! $this->moduleExists($this->alias)) {
throw new \Exception("Module [{$this->alias}] not found.");
}
}
}

View File

@ -3,10 +3,13 @@
namespace App\Jobs\Install;
use App\Abstracts\Job;
use App\Traits\Modules;
use App\Utilities\Console;
class UninstallModule extends Job
{
use Modules;
protected $alias;
protected $company_id;
@ -34,6 +37,8 @@ class UninstallModule extends Job
*/
public function handle()
{
$this->authorize();
$command = "module:uninstall {$this->alias} {$this->company_id} {$this->locale}";
$result = Console::run($command);
@ -42,4 +47,14 @@ class UninstallModule extends Job
throw new \Exception($result);
}
}
/**
* Determine if this action is applicable.
*/
public function authorize(): void
{
if (! $this->moduleExists($this->alias)) {
throw new \Exception("Module [{$this->alias}] not found.");
}
}
}