diff --git a/web/modules/custom/talks/opdavies_talks.services.yml b/web/modules/custom/talks/opdavies_talks.services.yml index 4e541e0..932969d 100644 --- a/web/modules/custom/talks/opdavies_talks.services.yml +++ b/web/modules/custom/talks/opdavies_talks.services.yml @@ -2,23 +2,18 @@ services: Drupal\Core\Cache\CacheBackendInterface: alias: cache.default private: true - Drupal\opdavies_talks\Repository\TalkRepository: autowire: true - Drupal\opdavies_talks\Service\CachedTalkCounter: autowire: true - Drupal\opdavies_talks\Service\TalkCounter: autowire: true - Drupal\opdavies_talks\Service\TalkCounterInterface: autowire: true class: Drupal\opdavies_talks\Service\CachedTalkCounter - Drupal\opdavies_talks\Service\TalkDateUpdater: autowire: true - Drupal\opdavies_talks\EventSubscriber\UpdateTalkNodeBeforeSave: + autowire: true tags: - - { name: event_subscriber } + - {name: event_subscriber} diff --git a/web/modules/custom/talks/src/EventSubscriber/UpdateTalkNodeBeforeSave.php b/web/modules/custom/talks/src/EventSubscriber/UpdateTalkNodeBeforeSave.php index bc85cbf..df180ad 100644 --- a/web/modules/custom/talks/src/EventSubscriber/UpdateTalkNodeBeforeSave.php +++ b/web/modules/custom/talks/src/EventSubscriber/UpdateTalkNodeBeforeSave.php @@ -4,12 +4,13 @@ declare(strict_types=1); namespace Drupal\opdavies_talks\EventSubscriber; -use Carbon\Carbon; +use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\core_event_dispatcher\EntityHookEvents; use Drupal\core_event_dispatcher\Event\Entity\AbstractEntityEvent; use Drupal\opdavies_talks\Entity\Node\Talk; use Drupal\paragraphs\ParagraphInterface; use Illuminate\Support\Collection; +use Psr\Log\LoggerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** @@ -17,6 +18,12 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; */ final class UpdateTalkNodeBeforeSave implements EventSubscriberInterface { + private LoggerInterface $logger; + + public function __construct(LoggerChannelFactoryInterface $logger) { + $this->logger = $logger->get('opdavies_talks'); + } + public static function getSubscribedEvents() { return [ EntityHookEvents::ENTITY_PRE_SAVE => 'onEntityPreSave', @@ -45,6 +52,8 @@ final class UpdateTalkNodeBeforeSave implements EventSubscriberInterface { return; }; + $this->logger->debug(sprintf('Sorting events for talk "%s"', $talk->label())); + $eventsByDate = $this->sortEventsByDate($events); // If the original event IDs don't match the sorted event IDs, update the event field to use the sorted ones. @@ -61,6 +70,8 @@ final class UpdateTalkNodeBeforeSave implements EventSubscriberInterface { } private function updateMostRecentEventDate(Talk $talk): void { + $this->logger->debug(sprintf('Updating the most recent event date for talk "%s"', $talk->label())); + $mostRecentEventDate = $talk->findLatestEventDate(); $talk->set('field_event_date', $mostRecentEventDate);