demo/app/Modules/Torrent/UI/Web/Handlers/StoreHandler.php
2023-03-23 18:50:47 +01:00

34 lines
670 B
PHP

<?php
namespace LaraBB\Torrent\UI\Web\Handlers;
use Illuminate\Http\RedirectResponse;
use LaraBB\Torrent\Actions\StoreAction;
use LaraBB\Torrent\UI\Web\Requests\StoreRequest;
/**
*
*/
class StoreHandler
{
/**
* @param StoreAction $storeAction
*/
public function __construct(
private readonly StoreAction $storeAction
) {
}
/**
* @param StoreRequest $request
* @return RedirectResponse
*/
public function __invoke(StoreRequest $request): RedirectResponse
{
$torrent = $this->storeAction->run($request);
return !$torrent ? $request->failed() : $request->success($torrent->uuid);
}
}