Rewrite filters to better ui

This commit is contained in:
Tim
2025-05-10 15:48:27 +02:00
parent cda03f7b67
commit a7c94a8f21
3 changed files with 56 additions and 26 deletions

View File

@ -50,18 +50,29 @@ class SnipRepository extends ServiceEntityRepository
->setParameter('user', $user)
;
$qb->andWhere('s.visible = :visible')
->setParameter('visible', $request->onlyVisible)
;
if ($request->sort === SnipFilterRequest::SORT_NAME) {
$qb->orderBy('s.name', 'ASC');
} elseif ($request->sort === SnipFilterRequest::SORT_DATE) {
$qb->orderBy('s.createdAt', 'DESC');
} else {
throw new \InvalidArgumentException('Invalid sort option: ', $request->sort);
switch ($request->visibility) {
case SnipFilterRequest::VISIBILITY_ALL:
break;
case SnipFilterRequest::VISIBILITY_VISIBLE:
$qb->andWhere('s.visible = true');
break;
case SnipFilterRequest::VISIBILITY_HIDDEN:
$qb->andWhere('s.visible = false');
break;
default:
throw new \InvalidArgumentException('Invalid visibility option: ', $request->visibility);
}
switch ($request->sort) {
case SnipFilterRequest::SORT_NAME:
$qb->orderBy('s.name', 'ASC');
break;
case SnipFilterRequest::SORT_DATE:
$qb->orderBy('s.createdAt', 'DESC');
break;
default:
throw new \InvalidArgumentException('Invalid sort option: ', $request->sort);
}
return $qb->getQuery()->getResult();
}