123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace Drupal\heartbeat;
- use Drupal\Core\Entity\EntityTypeManager;
- use Drupal\Core\Entity\EntityTypeRepository;
- use Drupal\Core\Entity\Query\QueryFactory;
- class HeartbeatStreamServices {
-
- protected $entityTypeManager;
-
- protected $entityTypeRepository;
-
- protected $entityQuery;
-
- public function __construct(EntityTypeManager $entityTypeManager, EntityTypeRepository $entityTypeRepository, QueryFactory $entityQuery) {
- $this->entityTypeManager = $entityTypeManager;
- $this->entityTypeRepository = $entityTypeRepository;
- $this->entityQuery = $entityQuery;
- }
-
- public function getEntityById($id) {
- return $this->entityTypeManager->getStorage('heartbeat_stream')->load($id);
- }
-
- public function getTypesById($id) {
- return $this->entityTypeManager->getStorage('heartbeat_stream')->load($id)->get('types');
- }
-
- public function loadAllEntities() {
- return $this->entityQuery->get('heartbeat_stream')->execute();
- }
- public function loadStream($type) {
- return $this->entityQuery->get('heartbeat_stream')->condition('name', $type)->execute();
- }
-
- public function getAllStreams() {
- return $this->entityTypeManager->getStorage('heartbeat_stream')->loadMultiple($this->loadAllEntities());
- }
- public function createStreamForUids($uids) {
- return $this->entityTypeManager->getStorage('heartbeat')->loadMultiple($this->entityQuery->get('heartbeat')->condition('status', 1)->condition('uid', $uids, 'IN')->sort('created', 'DESC')->execute());
- }
- public function createStreamForUidsByType($uids, $type) {
- $stream = $this->entityTypeManager->getStorage('heartbeat_stream')->load(array_values($this->loadStream($type))[0]);
- return $this->entityTypeManager->getStorage('heartbeat')->loadMultiple($this->entityQuery->get('heartbeat')->condition('status', 1)->condition('type', array_column($stream->getTypes(), 'target_id'), 'IN')->condition('uid', $uids, 'IN')->sort('created', 'DESC')->execute());
- }
- }
|