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:
parent
1f0926ac16
commit
0c1321fed5
3 changed files with 30 additions and 15 deletions
22
web/modules/custom/talks/src/Collection/TalkCollection.php
Normal file
22
web/modules/custom/talks/src/Collection/TalkCollection.php
Normal 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());
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue