<?php
declare(strict_types=1);
namespace App\EventListener;
use App\Files\Uploader\PaymentMethodUploader;
use Sylius\Bundle\ResourceBundle\Event\ResourceControllerEvent;
use Symfony\Component\EventDispatcher\GenericEvent;
final class PaymentMethodListener
{
private PaymentMethodUploader $paymentMethodUploader;
/**
* PaymentMethodListener constructor.
*/
public function __construct(PaymentMethodUploader $paymentMethodUploader)
{
$this->paymentMethodUploader = $paymentMethodUploader;
}
public function pre_create(ResourceControllerEvent $paymentMethod): void
{
$file = $paymentMethod->getSubject()->getFile();
if ($file !== null) {
$pathFile = $this->paymentMethodUploader->upload($file);
$paymentMethod->getSubject()->setFilePath($pathFile);
}
}
public function pre_update(ResourceControllerEvent $paymentMethod): void
{
$file = $paymentMethod->getSubject()->getFile();
if ($file === null) {
return;
}
$pathFile = $this->paymentMethodUploader->upload($file);
$paymentMethod->getSubject()->setFilePath($pathFile);
}
public function deleteFile(GenericEvent $event)
{
$file = $event->getSubject();
if ($file) {
$oldFilePath = $file->getFilePath();
if (!empty($oldFilePath)) {
@unlink($oldFilePath);
}
}
}
}