Add SubscribersRepository

[MAILPOET-2394]
This commit is contained in:
Amine Ben hammou
2019-11-26 21:47:00 +01:00
committed by Jack Kitterhing
parent 86a164c079
commit 924486e914
2 changed files with 38 additions and 0 deletions

View File

@ -200,6 +200,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Subscribers\SubscriberActions::class)->setPublic(true);
$container->autowire(\MailPoet\Subscribers\InactiveSubscribersController::class);
$container->autowire(\MailPoet\Subscribers\LinkTokens::class);
$container->autowire(\MailPoet\Subscribers\SubscribersRepository::class);
// Segments
$container->autowire(\MailPoet\Segments\SubscribersListings::class)->setPublic(true);
$container->autowire(\MailPoet\Segments\WooCommerce::class)->setPublic(true);

View File

@ -0,0 +1,37 @@
<?php
namespace MailPoet\Subscribers;
use MailPoet\Doctrine\Repository;
use MailPoet\Entities\SubscriberEntity;
/**
* @method SubscriberEntity[] findBy(array $criteria, array $order_by = null, int $limit = null, int $offset = null)
* @method SubscriberEntity|null findOneBy(array $criteria, array $order_by = null)
* @method SubscriberEntity|null findOneById(mixed $id)
* @method void persist(SubscriberEntity $entity)
* @method void remove(SubscriberEntity $entity)
*/
class SubscribersRepository extends Repository {
protected function getEntityClassName() {
return SubscriberEntity::class;
}
/**
* @return int
*/
public function getTotalSubscribers() {
$query = $this->entity_manager
->createQueryBuilder()
->select('count(n.id)')
->from(SubscriberEntity::class, 'n')
->where('n.status IN (:statuses)')
->setParameter(':statuses', [
SubscriberEntity::STATUS_SUBSCRIBED,
SubscriberEntity::STATUS_UNCONFIRMED,
SubscriberEntity::STATUS_INACTIVE,
])
->getQuery();
return (int)$query->getSingleScalarResult();
}
}