Skip to content

Commit

Permalink
fix(repository) Update filter usage in repository
Browse files Browse the repository at this point in the history
  • Loading branch information
MrAnyx committed Nov 22, 2024
1 parent 720db66 commit 6e8a123
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 39 deletions.
4 changes: 0 additions & 4 deletions src/Controller/Flashcard/FlashcardBehaviorController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

namespace App\Controller\Flashcard;

use App\Attribute\Body;
use App\Attribute\RelativeToEntity;
use App\Attribute\Resource;
use App\Controller\AbstractRestController;
Expand All @@ -17,7 +16,6 @@
use App\Modifier\Modifier;
use App\Modifier\Transformer\EntityByIdTransformer;
use App\Modifier\Transformer\EnumTransformer;
use App\OptionsResolver\SpacedRepetitionOptionsResolver;
use App\Repository\FlashcardRepository;
use App\Repository\ReviewRepository;
use App\SpacedRepetition\Fsrs4_5Algorithm;
Expand All @@ -39,10 +37,8 @@ class FlashcardBehaviorController extends AbstractRestController
#[Route('/flashcards/{id}/review', name: 'review_flashcard', methods: ['POST'], requirements: ['id' => Regex::INTEGER])]
public function reviewFlashcard(
EntityManagerInterface $em,
SpacedRepetitionOptionsResolver $spacedRepetitionOptionsResolver,
SpacedRepetitionScheduler $spacedRepetitionScheduler,
#[Resource(FlashcardVoter::OWNER)] Flashcard $flashcard,
#[Body] mixed $body,
): JsonResponse {
if ($flashcard->getNextReview() > (new \DateTimeImmutable())) {
throw new BadRequestHttpException(\sprintf('You can not review the flashcard with id %d yet. The next review is scheduled for %s', $flashcard->getId(), $flashcard->getNextReview()->format('jS \\of F Y')));
Expand Down
2 changes: 0 additions & 2 deletions src/Controller/Security/PasswordForgottenController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use App\Entity\PasswordReset;
use App\Exception\MaxTriesReachedException;
use App\Message\SendTextEmailMessage;
use App\OptionsResolver\UserOptionsResolver;
use App\Repository\PasswordResetRepository;
use App\Repository\UserRepository;
use App\UniqueGenerator\UniqueTokenGenerator;
Expand All @@ -31,7 +30,6 @@ class PasswordForgottenController extends AbstractRestController
#[Route('/reset-password/request', name: 'password_reset_request', methods: ['POST'])]
public function requestPasswordReset(
EntityManagerInterface $em,
UserOptionsResolver $userOptionsResolver,
UserRepository $userRepository,
PasswordResetRepository $passwordResetRepository,
UniqueTokenGenerator $uniqueTokenGenerator,
Expand Down
8 changes: 4 additions & 4 deletions src/Repository/FlashcardRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@ public function paginateAndFilterAll(Page $page, ?Filter $filter, ?User $user =
->setParameter('user', $user);
}

if ($filter->isFullyConfigured()) {
if ($filter !== null) {
$query
->andWhere("f.{$filter->filter} {$filter->operator->getDoctrineNotation()} :query")
->setParameter('query', $filter->getDoctrineParameter());
}

$query
->addOrderBy("CASE WHEN f.{$page->sort} IS NULL THEN 1 ELSE 0 END", 'ASC') // To put null values last
->addOrderBy("f.{$page->sort}", $page->order);
->addOrderBy("f.{$page->sort}", $page->order->value);

return new Paginator($query, $page);
}
Expand All @@ -82,14 +82,14 @@ public function paginateAndFilterByUnit(Page $page, ?Filter $filter, Unit $unit)
->where('f.unit = :unit')
->setParameter('unit', $unit);

if ($filter->isFullyConfigured()) {
if ($filter !== null) {
$query
->andWhere("f.{$filter->filter} {$filter->operator->getDoctrineNotation()} :query")
->setParameter('query', $filter->getDoctrineParameter());
}

$query->addOrderBy("CASE WHEN f.{$page->sort} IS NULL THEN 1 ELSE 0 END", 'ASC')
->addOrderBy("f.{$page->sort}", $page->order);
->addOrderBy("f.{$page->sort}", $page->order->value);

return new Paginator($query, $page);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Repository/SessionRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ public function paginateAndFilterAll(Page $page, ?Filter $filter, ?User $user =
->setParameter('user', $user);
}

if ($filter->isFullyConfigured()) {
if ($filter !== null) {
$query
->andWhere("s.{$filter->filter} {$filter->operator->getDoctrineNotation()} :query")
->setParameter('query', $filter->getDoctrineParameter());
}

$query
->addOrderBy("CASE WHEN s.{$page->sort} IS NULL THEN 1 ELSE 0 END", 'ASC') // To put null values last
->addOrderBy("s.{$page->sort}", $page->order);
->addOrderBy("s.{$page->sort}", $page->order->value);

return new Paginator($query, $page, VirtualHydrator::class);
}
Expand Down
25 changes: 0 additions & 25 deletions src/Repository/SettingRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,4 @@ public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Setting::class);
}

// /**
// * @return Setting[] Returns an array of Setting objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('s.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }

// public function findOneBySomeField($value): ?Setting
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}
4 changes: 2 additions & 2 deletions src/Repository/UserRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,14 @@ public function paginateAndFilterAll(Page $page, ?Filter $filter): Paginator
{
$query = $this->createQueryBuilder('u');

if ($filter->isFullyConfigured()) {
if ($filter !== null) {
$query
->andWhere("u.{$filter->filter} {$filter->operator->getDoctrineNotation()} :query")
->setParameter('query', $filter->getDoctrineParameter());
}

$query->addOrderBy("CASE WHEN u.{$page->sort} IS NULL THEN 1 ELSE 0 END", 'ASC')
->addOrderBy("u.{$page->sort}", $page->order);
->addOrderBy("u.{$page->sort}", $page->order->value);

return new Paginator($query, $page);
}
Expand Down

0 comments on commit 6e8a123

Please sign in to comment.