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