src/PortoContainers/IMP/EventSubscriber/ShippingCourierSettingsSubscriber.php line 40
<?phpnamespace App\PortoContainers\IMP\EventSubscriber;use App\Entity\Shipping\ShippingCourier;use App\Event\ShippingCourierSettingsPersistedEvent;use App\PortoContainers\IMP\Actions\SyncClientsOfficesAction;use App\PortoContainers\IMP\Entities\CourierImpClientOffice;use Doctrine\ORM\EntityManagerInterface;use Symfony\Component\EventDispatcher\EventSubscriberInterface;class ShippingCourierSettingsSubscriber implements EventSubscriberInterface{/*** @param SyncClientsOfficesAction $syncClientsOfficesAction* @param EntityManagerInterface $em*/public function __construct(private readonly SyncClientsOfficesAction $syncClientsOfficesAction,private readonly EntityManagerInterface $em){}/*** @return array*/public static function getSubscribedEvents(): array{return [ShippingCourierSettingsPersistedEvent::class => ['shippingCourierSettingsPersistAction', 101],];}/*** @param ShippingCourierSettingsPersistedEvent $event* @return void* @throws \Exception*/public function shippingCourierSettingsPersistAction(ShippingCourierSettingsPersistedEvent $event): void{$entity = $event->getEntity();if ($entity->getCourier()->getType() !== ShippingCourier::COURIER_TYPE_IMP) {return;}if (!$entity->getLogin() || !$entity->getPassword()) {return;}if ($this->em->getRepository(CourierImpClientOffice::class)->findOneBy(['shop' => $entity->getShop()])) {return;}$this->syncClientsOfficesAction->run(shippingCourierSettings: $entity);}}