Implement snip hiding

This commit is contained in:
Tim
2025-04-25 22:17:27 +02:00
parent 5a940b9ebd
commit 7c4a2b46c0
13 changed files with 541 additions and 24 deletions

View File

@ -2,10 +2,12 @@
namespace App\Repository;
use App\Dto\SnipFilterRequest;
use App\Entity\Snip;
use App\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @extends ServiceEntityRepository<Snip>
@ -40,12 +42,17 @@ class SnipRepository extends ServiceEntityRepository
}
}
public function findByUser(User $user): array
public function findByRequest(UserInterface $user, SnipFilterRequest $request): array
{
$qb = $this->createQueryBuilder('s');
$qb->where('s.createdBy = :user')
->setParameter('user', $user)
->orderBy('s.createdAt', 'DESC')
$qb = $this
->createQueryBuilder('s')
->where('s.createdBy = :user')
->setParameter('user', $user)
->orderBy('s.createdAt', 'DESC')
;
$qb->andWhere('s.visible = :visible')
->setParameter('visible', $request->onlyVisible)
;
return $qb->getQuery()->getResult();
@ -53,10 +60,11 @@ class SnipRepository extends ServiceEntityRepository
public function findPublic(?User $user = null): array
{
$qb = $this->createQueryBuilder('s')
->where('s.public = :public')
->setParameter('public', true)
->orderBy('s.createdAt', 'DESC')
$qb = $this
->createQueryBuilder('s')
->where('s.public = true')
->andWhere('s.visible = true')
->orderBy('s.createdAt', 'DESC')
;
if ($user) {