Add FtpExport repositories

This commit is contained in:
Romain Neutron
2013-08-29 18:46:03 +02:00
parent b225f16d5f
commit 17a4f1970a
3 changed files with 310 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
<?php
namespace 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->where($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 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(array('usrId' => $user->get_id()));
}
}