<?php

declare(strict_types=1);

namespace App\EventListener\JWT;

use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * Class AuthenticationSuccessListener : Listener appelé lors d'une authentification réussie ou ratée.
 */
class AuthenticationSuccessListener
{
    /**
     * Appelé lors d'une authentification réussie.
     */
    public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event): void
    {
        $data = $event->getData();
        $user = $event->getUser();

        // @phpstan-ignore-next-line c'est possible ce cas où $user ne serait pas une instance de UserInterface?
        if (!$user instanceof UserInterface) {
            return;
        }

        $event->setData($data);
    }
}
