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

44 lines
1.1 KiB
PHP

<?php
namespace LaraBB\Thread\UI\Web\Handlers;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use LaraBB\Thread\Actions\CreateAction;
use LaraBB\Thread\UI\Web\Requests\Create;
/**
* Class CreateHandler
* @package LaraBB\Thread\UI\Web\Handlers
*/
class CreateHandler extends Controller
{
/**
* CreateHandler constructor.
* @param CreateAction $createAction
* @param Factory $view
*/
public function __construct(private readonly CreateAction $createAction, private readonly Factory $view)
{
}
/**
* @param Create $request
* @return Application|Factory|View|RedirectResponse
*/
public function __invoke(Create $request): View|Factory|RedirectResponse|Application
{
$data = $this->createAction->run($request);
return $this->view->make('thread::create-edit', [
'forum' => $data['forum'],
'groups' => $data['groups'],
'users' => $data['users']
]);
}
}