<?php
namespace App\EventListener;
use App\Services\Functions;
use Pimcore\Event\Model\ElementEventInterface;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Log\ApplicationLogger;
use Symfony\Component\Messenger\MessageBusInterface;
use Carbon\Carbon;
use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\Lead;
class LeadListener
{
private $bus;
public function __construct(MessageBusInterface $bus)
{
$this->bus = $bus;
}
public function onPreAdd (ElementEventInterface $e) {
if ($e instanceof DataObjectEvent) {
$object = $e->getObject();
if($object instanceof Lead){
/** $pathConvention could be "/restricted-assets/{MembersKey}-{MembersUsername}" */
$pathConvention = Functions::getLeadPathConvention([Carbon::today()->toDateString()]);
// Check Asset folder
$folder = DataObject\Folder::getByPath('/lead/'.$pathConvention);
if(!($folder instanceof DataObject\Folder))
$folder = DataObject\Service::createFolderByPath('/lead/'.$pathConvention);
$time = Carbon::now();
$object->setParentId($folder->getId());
$object->setKey(\Pimcore\Model\Element\Service::getValidKey($object->getEmail().'-'.$time->getTimestamp(), 'object'));
$object->setCreatedDate($time);
}
}
}
public function onPreUpdate (ElementEventInterface $e) {
if ($e instanceof DataObjectEvent) {
$object = $e->getObject();
if($object instanceof Lead){
}
}
}
public function onPostAdd (ElementEventInterface $e) {
if ($e instanceof DataObjectEvent) {
$object = $e->getObject();
if($object instanceof Lead){
// $logger = ApplicationLogger::getInstance();
// $logger->info('Messaggio in coda: '. $object->getEmail());
// if ($object->getActive()){
// $this->bus->dispatch(new ManualRegistrationMessage($object));
// }
}
}
}
}