Add entry.saved event to import & rest

This commit is contained in:
Jeremy Benoist
2016-11-02 07:10:23 +01:00
parent e0597476d1
commit 7816eb622d
17 changed files with 222 additions and 49 deletions

View File

@ -9,6 +9,8 @@ use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Wallabag\CoreBundle\Event\EntrySavedEvent;
abstract class AbstractConsumer
{
@ -17,11 +19,12 @@ abstract class AbstractConsumer
protected $import;
protected $logger;
public function __construct(EntityManager $em, UserRepository $userRepository, AbstractImport $import, LoggerInterface $logger = null)
public function __construct(EntityManager $em, UserRepository $userRepository, AbstractImport $import, EventDispatcherInterface $eventDispatcher, LoggerInterface $logger = null)
{
$this->em = $em;
$this->userRepository = $userRepository;
$this->import = $import;
$this->eventDispatcher = $eventDispatcher;
$this->logger = $logger ?: new NullLogger();
}
@ -59,6 +62,9 @@ abstract class AbstractConsumer
try {
$this->em->flush();
// entry saved, dispatch event about it!
$this->eventDispatcher->dispatch(EntrySavedEvent::NAME, new EntrySavedEvent($entry));
// clear only affected entities
$this->em->clear(Entry::class);
$this->em->clear(Tag::class);