Source of file MaillogRepository.php

Size: 1,412 Bytes - Last Modified: 2023-11-16T22:56:03+01:00

/home/websites/teicee/packagist/site/phpdoc/conf/../vendor/teicee/mail-bundle/src/Repository/MaillogRepository.php

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
<?php
namespace TIC\MailBundle\Repository;

#use Doctrine\ORM\EntityRepository as BaseRepository;
use TIC\DormBundle\Base\TICRepository as BaseRepository;
use TIC\MailBundle\Entity\Maillog as Entity;

/**
 * Repository pour requêtes sur les entités des évènements du journal d'envoi.
 */
class MaillogRepository extends BaseRepository
{

	/**
	 * @var Listing default order
	 */
	public $sortBy = ['createdAt' => 'DESC'];

	/**
	 * Retourne la liste des évènement du journal pour un modèle triée avec l'ordre par défaut.
	 *
	 * @param   string  $ref        Référence d'un modèle (template)
	 * @param   array   $filters    Filtres optionnels pour la recherche
	 * @return  array               Liste d'entités \TIC\MailBundle\Entity\Maillog
	 */
	public function listAllByTemplate(string $ref, array $filters = []): array
	{
		$filters['template'] = \strtolower(\trim($ref));
		return $this->findBy($filters, $this->sortBy);
	}

	/**
	 * Enregistrement d'un évènement d'envoi dans la table des journaux.
	 *
	 * @param   array   $data       Données à importer dans l'évènement du journal (clés/valeurs)
	 * @return  integer             Clé primaire (id) de l'entité Maillog enregistrée
	 */
	public function createEventLog(array $data = []): int
	{
		$item = new Entity($data);
		
		$em = $this->getEntityManager();
		$em->persist($item);
		$em->flush();
		
		return $item->getId();
	}

}