src/App/EventSubscriber/App/ProfileInvoiceEmailAddressEditedEventSubscriber.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber\App;
  3. use App\Event\ProfileInvoiceEmailAddressEditedEvent;
  4. use App\Service\Membership\MembershipService;
  5. use JanusHercules\DatawarehouseIntegration\Domain\Entity\BusinessEvent;
  6. use JanusHercules\DatawarehouseIntegration\Domain\Service\BusinessEventDomainService;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class ProfileInvoiceEmailAddressEditedEventSubscriber implements EventSubscriberInterface
  9. {
  10. public function __construct(
  11. private readonly BusinessEventDomainService $businessEventDomainService,
  12. private readonly MembershipService $membershipService
  13. ) {
  14. }
  15. public static function getSubscribedEvents(): array
  16. {
  17. return [
  18. ProfileInvoiceEmailAddressEditedEvent::class => 'onProfileInvoiceEmailAddressEditedEvent'
  19. ];
  20. }
  21. public function onProfileInvoiceEmailAddressEditedEvent(
  22. ProfileInvoiceEmailAddressEditedEvent $event
  23. ): void {
  24. $this->membershipService->changeMembershipEmailAddress($event->getJoboffererProfile(), $event->getPreviousJoboffererProfile());
  25. $this->businessEventDomainService->writeNewEvent(BusinessEvent::EVENT_TYPE_INVOICE_EMAIL_EDITED);
  26. }
  27. }