HeartbeatService.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace Drupal\heartbeat;
  3. use Drupal\Core\Entity\EntityTypeManager;
  4. use Drupal\Core\Entity\Query\QueryFactory;
  5. /**
  6. * Class HeartbeatService.
  7. *
  8. * @package Drupal\heartbeat
  9. */
  10. class HeartbeatService {
  11. /**
  12. * Drupal\Core\Entity\EntityTypeManager definition.
  13. *
  14. * @var \Drupal\Core\Entity\EntityTypeManager
  15. */
  16. protected $entityTypeManager;
  17. /**
  18. * Drupal\Core\Entity\Query\QueryFactory definition.
  19. *
  20. * @var \Drupal\Core\Entity\Query\QueryFactory
  21. */
  22. protected $entityQuery;
  23. /**
  24. * Constructor.
  25. * @param EntityTypeManager $entity_type_manager
  26. * @param QueryFactory $entity_query
  27. */
  28. public function __construct(EntityTypeManager $entity_type_manager, QueryFactory $entity_query) {
  29. $this->entityTypeManager = $entity_type_manager;
  30. $this->entityQuery = $entity_query;
  31. }
  32. public function loadAll() {
  33. $entities = $this->entityQuery->get("heartbeat")->execute();
  34. return $this->entityTypeManager->getStorage("heartbeat")->loadMultiple($entities);
  35. }
  36. public function load($id) {
  37. return $this->entityTypeManager->getStorage("heartbeat")->load($id);
  38. }
  39. public function loadByType($type) {
  40. return $this->entityTypeManager->getStorage("heartbeat")->loadMultiple($this->entityQuery->get('heartbeat')->condition('type', $type)->execute());
  41. }
  42. public function loadByTypes($types) {
  43. return $this->entityTypeManager->getStorage("heartbeat")->loadMultiple($this->entityQuery->get('heartbeat')->condition('type', $types, 'IN')->sort('created', 'DESC')->execute());
  44. }
  45. }