contacts_subscriptions-1.x-dev/src/Entity/SqlSubscriptionStorage.php
src/Entity/SqlSubscriptionStorage.php
<?php
namespace Drupal\contacts_subscriptions\Entity;
use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
use Drupal\user\UserInterface;
/**
* SQL storage for subscriptions.
*/
class SqlSubscriptionStorage extends SqlContentEntityStorage {
/**
* Load a subscription for the given user.
*
* @param \Drupal\user\UserInterface $user
* The user.
* @param string|null $type
* The subscription type.
*
* @return \Drupal\contacts_subscriptions\Entity\SubscriptionInterface[]
* The subscriptions.
*/
public function loadByUser(UserInterface $user, string $type = NULL): ?array {
if ($user->isAnonymous()) {
return [];
}
$values = [
'uid' => $user->id(),
];
if ($type) {
$values['bundle'] = $type;
}
$subscriptions = $this->loadByProperties($values);
usort($subscriptions, [Subscription::class, 'sort']);
return $subscriptions ?: [];
}
}
