3 namespace Wallabag\CoreBundle\Event\Subscriber
;
5 use Symfony\Component\EventDispatcher\EventSubscriberInterface
;
6 use Doctrine\ORM\EntityManager
;
7 use Psr\Log\LoggerInterface
;
8 use Wallabag\CoreBundle\Entity\Change
;
9 use Wallabag\CoreBundle\Event\EntryTaggedEvent
;
10 use Wallabag\CoreBundle\Event\EntryUpdatedEvent
;
12 class ChangesSubscriber
implements EventSubscriberInterface
14 /** @var LoggerInterface $logger */
17 /** @var EntityManager $em */
20 public function __construct(EntityManager
$em, LoggerInterface
$logger)
22 $this->logger
= $logger;
26 public static function getSubscribedEvents()
29 EntryUpdatedEvent
::NAME
=> 'onEntryUpdated',
30 EntryTaggedEvent
::NAME
=> 'onEntryTagged',
35 * @param EntryUpdatedEvent $event
37 public function onEntryUpdated(EntryUpdatedEvent
$event)
39 $change = new Change(Change
::MODIFIED_TYPE
, $event->getEntry());
41 $this->em
->persist($change);
44 $this->logger
->debug('saved updated entry '.$event->getEntry()->getId().' event ');
48 * @param EntryTaggedEvent $event
50 public function onEntryTagged(EntryTaggedEvent
$event)
52 $change = new Change(Change
::CHANGED_TAG_TYPE
, $event->getEntry());
54 $this->em
->persist($change);
57 $this->logger
->debug('saved (un)tagged entry '.$event->getEntry()->getId().' event ');