demo/app/Modules/Settings/Actions/Prefix/DestroyAction.php
2023-03-23 18:50:47 +01:00

52 lines
1.2 KiB
PHP

<?php
namespace LaraBB\Settings\Actions\Prefix;
use Exception;
use Illuminate\Database\Connection;
use LaraBB\Settings\Tasks\Prefix\DestroyTask as DestroyPrefixTask;
use LaraBB\Settings\Tasks\Prefix\FindTask as FindPrefixTask;
use LaraBB\Settings\UI\Web\Requests\Prefix\Destroy;
use Throwable;
/**
* Class DestroyAction
* @package LaraBB\Settings\Actions\Prefix
*/
class DestroyAction
{
/**
* DestroyAction constructor.
* @param FindPrefixTask $findPrefixTask
* @param DestroyPrefixTask $destroyPrefixTask
* @param Connection $connection
*/
public function __construct(
private readonly FindPrefixTask $findPrefixTask,
private readonly DestroyPrefixTask $destroyPrefixTask,
private readonly Connection $connection
) {
}
/**
* @param Destroy $request
* @return bool|null
* @throws Exception
*/
public function run(Destroy $request): ?bool
{
$prefix = $this->findPrefixTask->byUuid($request->post('uuid'));
try {
$this->connection->transaction(function() use($prefix) {
$this->destroyPrefixTask->run($prefix);
});
} catch (Throwable $t) {
return false;
}
return true;
}
}