<?php
declare(strict_types=1);
namespace App\EventListener;
use App\Entity\User\ShopUser;
use App\Service\EdlssoInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
use Webmozart\Assert\Assert;
final class RequestResetPasswordListener
{
public function __construct(
private EdlssoInterface $edlsso,
) {
}
public function handle(GenericEvent $event): void
{
/** @var ShopUser $shopUser */
$shopUser = $event->getSubject();
Assert::isInstanceOf($shopUser, ShopUser::class);
Assert::notNull($shopUser->getUsername());
Assert::notNull($shopUser->getPasswordResetToken());
$this->edlsso->requestResetPassword($shopUser->getUsername(), $shopUser->getPasswordResetToken());
$event->stopPropagation();
}
}