Add logging for updating a talk before saving
This commit is contained in:
parent
13071b2ae6
commit
cd9b8f0585
|
@ -2,23 +2,18 @@ services:
|
||||||
Drupal\Core\Cache\CacheBackendInterface:
|
Drupal\Core\Cache\CacheBackendInterface:
|
||||||
alias: cache.default
|
alias: cache.default
|
||||||
private: true
|
private: true
|
||||||
|
|
||||||
Drupal\opdavies_talks\Repository\TalkRepository:
|
Drupal\opdavies_talks\Repository\TalkRepository:
|
||||||
autowire: true
|
autowire: true
|
||||||
|
|
||||||
Drupal\opdavies_talks\Service\CachedTalkCounter:
|
Drupal\opdavies_talks\Service\CachedTalkCounter:
|
||||||
autowire: true
|
autowire: true
|
||||||
|
|
||||||
Drupal\opdavies_talks\Service\TalkCounter:
|
Drupal\opdavies_talks\Service\TalkCounter:
|
||||||
autowire: true
|
autowire: true
|
||||||
|
|
||||||
Drupal\opdavies_talks\Service\TalkCounterInterface:
|
Drupal\opdavies_talks\Service\TalkCounterInterface:
|
||||||
autowire: true
|
autowire: true
|
||||||
class: Drupal\opdavies_talks\Service\CachedTalkCounter
|
class: Drupal\opdavies_talks\Service\CachedTalkCounter
|
||||||
|
|
||||||
Drupal\opdavies_talks\Service\TalkDateUpdater:
|
Drupal\opdavies_talks\Service\TalkDateUpdater:
|
||||||
autowire: true
|
autowire: true
|
||||||
|
|
||||||
Drupal\opdavies_talks\EventSubscriber\UpdateTalkNodeBeforeSave:
|
Drupal\opdavies_talks\EventSubscriber\UpdateTalkNodeBeforeSave:
|
||||||
|
autowire: true
|
||||||
tags:
|
tags:
|
||||||
- {name: event_subscriber}
|
- {name: event_subscriber}
|
||||||
|
|
|
@ -4,12 +4,13 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Drupal\opdavies_talks\EventSubscriber;
|
namespace Drupal\opdavies_talks\EventSubscriber;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
|
||||||
use Drupal\core_event_dispatcher\EntityHookEvents;
|
use Drupal\core_event_dispatcher\EntityHookEvents;
|
||||||
use Drupal\core_event_dispatcher\Event\Entity\AbstractEntityEvent;
|
use Drupal\core_event_dispatcher\Event\Entity\AbstractEntityEvent;
|
||||||
use Drupal\opdavies_talks\Entity\Node\Talk;
|
use Drupal\opdavies_talks\Entity\Node\Talk;
|
||||||
use Drupal\paragraphs\ParagraphInterface;
|
use Drupal\paragraphs\ParagraphInterface;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,6 +18,12 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
*/
|
*/
|
||||||
final class UpdateTalkNodeBeforeSave implements EventSubscriberInterface {
|
final class UpdateTalkNodeBeforeSave implements EventSubscriberInterface {
|
||||||
|
|
||||||
|
private LoggerInterface $logger;
|
||||||
|
|
||||||
|
public function __construct(LoggerChannelFactoryInterface $logger) {
|
||||||
|
$this->logger = $logger->get('opdavies_talks');
|
||||||
|
}
|
||||||
|
|
||||||
public static function getSubscribedEvents() {
|
public static function getSubscribedEvents() {
|
||||||
return [
|
return [
|
||||||
EntityHookEvents::ENTITY_PRE_SAVE => 'onEntityPreSave',
|
EntityHookEvents::ENTITY_PRE_SAVE => 'onEntityPreSave',
|
||||||
|
@ -45,6 +52,8 @@ final class UpdateTalkNodeBeforeSave implements EventSubscriberInterface {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$this->logger->debug(sprintf('Sorting events for talk "%s"', $talk->label()));
|
||||||
|
|
||||||
$eventsByDate = $this->sortEventsByDate($events);
|
$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.
|
// 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 {
|
private function updateMostRecentEventDate(Talk $talk): void {
|
||||||
|
$this->logger->debug(sprintf('Updating the most recent event date for talk "%s"', $talk->label()));
|
||||||
|
|
||||||
$mostRecentEventDate = $talk->findLatestEventDate();
|
$mostRecentEventDate = $talk->findLatestEventDate();
|
||||||
|
|
||||||
$talk->set('field_event_date', $mostRecentEventDate);
|
$talk->set('field_event_date', $mostRecentEventDate);
|
||||||
|
|
Loading…
Reference in a new issue