oliverdavies.uk/modules/opd_daily_emails/src/Repository/DailyEmailNodeRepository.php

38 lines
887 B
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace Drupal\opd_daily_emails\Repository;
use Drupal\Core\Entity\EntityTypeManagerInterface;
2025-05-12 08:05:20 +01:00
use Drupal\node\NodeInterface;
use Drupal\opd_daily_emails\Collection\DailyEmailCollection;
final class DailyEmailNodeRepository implements DailyEmailRepositoryInterface {
public function __construct(
public readonly EntityTypeManagerInterface $entityTypeManager,
) {
}
public function getAll(): DailyEmailCollection {
$nodeStorage = $this->entityTypeManager
->getStorage('node');
$query = $nodeStorage->getQuery();
2025-05-12 08:05:20 +01:00
$query->condition('status', NodeInterface::PUBLISHED);
$query->condition('type', 'daily_email');
$query->accessCheck(TRUE);
$nodeIds = $query->execute();
2025-05-29 18:12:17 +01:00
/** @var NodeInterface[] */
$nodes = $nodeStorage->loadMultiple($nodeIds);
return new DailyEmailCollection($nodes);
}
}