Add TalkCollection, move logic for getting events

Add a `TalkCollection` which extends Laravel/Tighten's, and add a method
there for getting the events from the talks. This makes this logic more
reusable and also makes the code in the `TalkCounter` service simpler.
This commit is contained in:
Oliver Davies 2021-02-10 07:54:43 +00:00
parent 1f0926ac16
commit 0c1321fed5
3 changed files with 30 additions and 15 deletions

View file

@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
namespace Drupal\opdavies_talks\Collection;
use Drupal\opdavies_talks\Entity\Node\Talk;
use Drupal\paragraphs\ParagraphInterface;
use Tightenco\Collect\Support\Collection;
final class TalkCollection extends Collection {
/**
* Return the events for the talks in the Collection.
*
* @return Collection|ParagraphInterface[]
*/
public function getEvents(): Collection {
return $this->flatMap(fn(Talk $talk): Collection => $talk->getEvents());
}
}