<?php
declare(strict_types=1);
namespace App\Controller\Admin\Auth;
use App\Model\User\UseCase\User\SignUp\Admin\Request\Command;
use App\Model\User\UseCase\User\SignUp\Admin\Request\Form;
use App\Model\User\UseCase\User\SignUp\Admin\Request\Handler;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class SignUpController extends AbstractController
{
private LoggerInterface $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
#[Route('/signup', name: 'signup')]
public function request(Request $request, Handler $handler): Response
{
$command = new Command();
$form = $this->createForm(Form::class, $command);
$form->handleRequest($request);
$is_send = false;
if ($form->isSubmitted() && $form->isValid()) {
try {
$handler->handle($command);
$is_send = true;
} catch (\DomainException $e) {
$this->logger->error($e->getMessage(), ['exception' => $e]);
$this->addFlash('error', $e->getMessage());
}
}
// $email = $command->email;
return $this->render('admin/auth/signup.html.twig', [
'form' => $form->createView(),
// 'email' => $email,
'is_send' => $is_send,
]);
}
}