Add some application repository function

This commit is contained in:
Nicolas Le Goff
2014-03-05 14:47:29 +01:00
parent c5d803ac26
commit bbbc8f7e02

View File

@@ -2,7 +2,10 @@
namespace Alchemy\Phrasea\Model\Repositories; namespace Alchemy\Phrasea\Model\Repositories;
use Alchemy\Phrasea\Model\Entities\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr;
/** /**
* ApiApplicationRepository * ApiApplicationRepository
@@ -12,4 +15,40 @@ use Doctrine\ORM\EntityRepository;
*/ */
class ApiApplicationRepository extends EntityRepository class ApiApplicationRepository extends EntityRepository
{ {
public function findByClientId($clientId)
{
$qb = $this->createQueryBuilder('app');
$qb->where($qb->expr()->eq('app.clientId', ':clientId'));
$qb->setParameter(':clientId', $clientId);
return $qb->getQuery()->getSingleResult();
}
public function findByCreator(User $user)
{
$qb = $this->createQueryBuilder('app');
$qb->where($qb->expr()->eq('app.creator', ':creator'));
$qb->setParameter(':creator', $user);
return $qb->getQuery()->getResult();
}
public function findByUser(User $user)
{
$qb = $this->createQueryBuilder('app');
$qb->innerJoin('app.accounts', 'acc', Expr\Join::WITH, $qb->expr()->eq('acc.user', ':user'));
$qb->setParameter(':user', $user);
return $qb->getQuery()->getResult();
}
public function findAuthorizedAppsByUser(User $user)
{
$qb = $this->createQueryBuilder('app');
$qb->innerJoin('app.accounts', 'acc', Expr\Join::WITH, $qb->expr()->eq('acc.user', ':user'));
$qb->andWhere($qb->expr()->eq('acc.revoked', $qb->expr()->literal(false)));
$qb->setParameter(':user', $user);
return $qb->getQuery()->getResult();
}
} }