src/Products/NotificationsBundle/Doctrine/Repository/Notifications/MessageRepository.php line 38

Open in your IDE?
  1. <?php
  2. namespace Products\NotificationsBundle\Doctrine\Repository\Notifications;
  3. use App\Util\Pagination;
  4. use App\Util\Querying;
  5. use Doctrine\ORM\Tools\Pagination\Paginator;
  6. use Products\NotificationsBundle\Doctrine\Repository\AbstractNotificationRepository;
  7. use Products\NotificationsBundle\Entity\AbstractNotification;
  8. use Products\NotificationsBundle\Entity\Automation;
  9. use Products\NotificationsBundle\Entity\Notifications\Invocation;
  10. use Products\NotificationsBundle\Entity\Notifications\Message;
  11. /**
  12.  * Class MessageRepository
  13.  * @package Products\NotificationsBundle\Doctrine\RepositoryNotifications
  14.  *
  15.  * @method Message find($id, $lockMode = null, $lockVersion = null)
  16.  * @method Message findOneBy(array $criteria, array $orderBy = null)
  17.  * @method array|Message[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  18.  * @method array|Message[] findAll()
  19.  * @method iterable|Paginator|array|Message[] findBySearch(array $search, ?int $limit = null, ?int $offset = null)
  20.  */
  21. class MessageRepository extends AbstractNotificationRepository
  22. {
  23.     /**
  24.      * @param int $limit
  25.      * @return array<Message>
  26.      */
  27.     public function findByRecentlySent(int $limit Pagination::PAGE_LIMIT): array
  28.     {
  29.         return $this->createQueryBuilder('message')
  30.             ->andWhere('message.status != :status')
  31.             ->setParameter('status'AbstractNotification::STATUSES__DRAFT)
  32.             ->addOrderBy('message.touchedAt''DESC')
  33.             ->setMaxResults(max(1$limit))
  34.             ->getQuery()
  35.             ->getResult();
  36.     }
  37. }