Files
Phraseanet/lib/Alchemy/Phrasea/Model/Repositories/FtpExportRepository.php
2013-11-18 13:57:33 +01:00

65 lines
1.5 KiB
PHP

<?php
namespace Alchemy\Phrasea\Model\Repositories;
use Doctrine\ORM\EntityRepository;
/**
* FtpExportRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class FtpExportRepository extends EntityRepository
{
/**
* Returns exports that crashed. If a date is provided, only exports created
* before this date are returned.
*
* @param \DateTime $before An optional date to search
*
* @return array
*/
public function findCrashedExports(\DateTime $before = null)
{
$qb = $this->createQueryBuilder('e');
$qb->where($qb->expr()->gte('e.crash', 'e.nbretry'));
if (null !== $before) {
$qb->andWhere($qb->expr()->lte('e.created', ':created'));
$qb->setParameter(':created', $before);
}
return $qb->getQuery()->getResult();
}
/**
* Returns a list of exports that can be achieved.
*
* @return array
*/
public function findDoableExports()
{
$dql = 'SELECT f
FROM Alchemy\Phrasea\Model\Entities\FtpExport f
INNER JOIN f.elements e
WHERE e.done = false';
$query = $this->_em->createQuery($dql);
return $query->getResult();
}
/**
* Returns the exports initiated by a given user.
*
* @param \User_Adapter $user
*
* @return array
*/
public function findByUser(\User_Adapter $user)
{
return $this->findBy(['usrId' => $user->get_id()]);
}
}