mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 12:14:45 +02:00
Remove service
This commit is contained in:
parent
139c70e52b
commit
c01330dc06
@ -45,10 +45,8 @@ class DatabaseController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Display database host to user.
|
* Display database host to user.
|
||||||
*/
|
*/
|
||||||
public function view(int $host): View
|
public function view(DatabaseHost $host): View
|
||||||
{
|
{
|
||||||
/** @var DatabaseHost $host */
|
|
||||||
$host = DatabaseHost::query()->findOrFail($host);
|
|
||||||
$databases = $host->databases()->with('server')->paginate(25);
|
$databases = $host->databases()->with('server')->paginate(25);
|
||||||
|
|
||||||
return view('admin.databases.view', [
|
return view('admin.databases.view', [
|
||||||
|
@ -10,7 +10,6 @@ use Illuminate\View\Factory as ViewFactory;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Services\Eggs\EggUpdateService;
|
use App\Services\Eggs\EggUpdateService;
|
||||||
use App\Services\Eggs\EggCreationService;
|
use App\Services\Eggs\EggCreationService;
|
||||||
use App\Services\Eggs\EggDeletionService;
|
|
||||||
use App\Http\Requests\Admin\Egg\EggFormRequest;
|
use App\Http\Requests\Admin\Egg\EggFormRequest;
|
||||||
|
|
||||||
class EggController extends Controller
|
class EggController extends Controller
|
||||||
@ -21,7 +20,6 @@ class EggController extends Controller
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
protected AlertsMessageBag $alert,
|
protected AlertsMessageBag $alert,
|
||||||
protected EggCreationService $creationService,
|
protected EggCreationService $creationService,
|
||||||
protected EggDeletionService $deletionService,
|
|
||||||
protected EggUpdateService $updateService,
|
protected EggUpdateService $updateService,
|
||||||
protected ViewFactory $view
|
protected ViewFactory $view
|
||||||
) {
|
) {
|
||||||
@ -105,7 +103,8 @@ class EggController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function destroy(Egg $egg): RedirectResponse
|
public function destroy(Egg $egg): RedirectResponse
|
||||||
{
|
{
|
||||||
$this->deletionService->handle($egg->id);
|
$egg->delete();
|
||||||
|
|
||||||
$this->alert->success(trans('admin/eggs.notices.deleted'))->flash();
|
$this->alert->success(trans('admin/eggs.notices.deleted'))->flash();
|
||||||
|
|
||||||
return redirect()->route('admin.eggs.view', $egg->id);
|
return redirect()->route('admin.eggs.view', $egg->id);
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Exceptions\Service\Egg\HasChildrenException;
|
||||||
|
use App\Exceptions\Service\HasActiveServersException;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
@ -140,6 +142,15 @@ class Egg extends Model
|
|||||||
'update_url' => null,
|
'update_url' => null,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
protected static function booted(): void
|
||||||
|
{
|
||||||
|
static::deleting(function (self $egg) {
|
||||||
|
throw_if($egg->servers()->count(), new HasActiveServersException(trans('exceptions.egg.delete_has_servers')));
|
||||||
|
|
||||||
|
throw_if($egg->children()->count(), new HasChildrenException(trans('exceptions.egg.has_children')));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the install script for the egg; if egg is copying from another
|
* Returns the install script for the egg; if egg is copying from another
|
||||||
* it will return the copied script.
|
* it will return the copied script.
|
||||||
@ -277,6 +288,11 @@ class Egg extends Model
|
|||||||
return $this->belongsTo(self::class, 'copy_script_from');
|
return $this->belongsTo(self::class, 'copy_script_from');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function children(): HasMany
|
||||||
|
{
|
||||||
|
return $this->hasMany(self::class, 'config_from');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the parent egg from which to copy configuration settings.
|
* Get the parent egg from which to copy configuration settings.
|
||||||
*/
|
*/
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Services\Eggs;
|
|
||||||
|
|
||||||
use App\Exceptions\Service\Egg\HasChildrenException;
|
|
||||||
use App\Exceptions\Service\HasActiveServersException;
|
|
||||||
use App\Models\Egg;
|
|
||||||
use App\Models\Server;
|
|
||||||
|
|
||||||
class EggDeletionService
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Delete an Egg from the database if it has no active servers attached to it.
|
|
||||||
*
|
|
||||||
* @throws \App\Exceptions\Service\HasActiveServersException
|
|
||||||
* @throws \App\Exceptions\Service\Egg\HasChildrenException
|
|
||||||
*/
|
|
||||||
public function handle(int $egg): int
|
|
||||||
{
|
|
||||||
if (Server::query()->where('egg_id', $egg)->count()) {
|
|
||||||
throw new HasActiveServersException(trans('exceptions.egg.delete_has_servers'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$children = Egg::query()->where('config_from', $egg)->count();
|
|
||||||
if ($children > 0) {
|
|
||||||
throw new HasChildrenException(trans('exceptions.egg.has_children'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$egg = Egg::query()->findOrFail($egg);
|
|
||||||
|
|
||||||
return (int) $egg->delete();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user