mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-21 15:13:50 +00:00
[person] order social issues: remove custom controller and order only by 'ordering'
This commit is contained in:
@@ -25,7 +25,7 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Serializer\SerializerInterface;
|
||||
|
||||
//class SocialIssueApiController extends ApiController
|
||||
class SocialIssueApiController extends AbstractController
|
||||
class SocialIssueApiController extends ApiController
|
||||
{
|
||||
|
||||
private SerializerInterface $serializer;
|
||||
@@ -36,77 +36,22 @@ class SocialIssueApiController extends AbstractController
|
||||
$this->serializer = $serializer;
|
||||
}
|
||||
|
||||
// protected function customizeQuery(string $action, Request $request, $query): void
|
||||
// {
|
||||
// $query->where(
|
||||
// $query->expr()->orX(
|
||||
// $query->expr()->gt('e.desactivationDate', ':now'),
|
||||
// $query->expr()->isNull('e.desactivationDate')
|
||||
// )
|
||||
// );
|
||||
// $query->setParameter('now', new DateTimeImmutable());
|
||||
// }
|
||||
|
||||
// protected function getQueryResult(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query)
|
||||
// {
|
||||
// // In order to work, this hydrator only works with
|
||||
// // entities having the field "children" set up.
|
||||
// return $query
|
||||
// ->getQuery()
|
||||
// ->setHint(Query::HINT_INCLUDE_META_COLUMNS, true)
|
||||
// ->getResult(FlatHierarchyEntityHydrator::LIST);
|
||||
// }
|
||||
|
||||
// protected function onPostIndexBuildQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query): ?Response
|
||||
// {
|
||||
// $query
|
||||
// ->orderBy('GET_JSON_FIELD_BY_KEY(e.title, :locale)', 'ASC')
|
||||
// ->setParameter(':locale', $request->getLocale());
|
||||
|
||||
// return null;
|
||||
// }
|
||||
|
||||
// protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator, $_format)
|
||||
// {
|
||||
// $query->addOrderBy('ordering', 'ASC');
|
||||
// return $query;
|
||||
|
||||
// }
|
||||
|
||||
/*
|
||||
* @Route("/api/1.0/person/social-work/social-issue.json", name="social_work_social_issue")
|
||||
*/
|
||||
public function indexAction(Request $request): JsonResponse
|
||||
protected function customizeQuery(string $action, Request $request, $query): void
|
||||
{
|
||||
$this->denyAccessUnlessGranted('ROLE_USER');
|
||||
|
||||
$qb = $this->getDoctrine()->getManager()->createQueryBuilder();
|
||||
|
||||
$qb->select('si')->from(SocialIssue::class, 'si');
|
||||
|
||||
$qb->where(
|
||||
$qb->expr()->orX(
|
||||
$qb->expr()->gt('si.desactivationDate', ':now'),
|
||||
$qb->expr()->isNull('si.desactivationDate')
|
||||
$query->where(
|
||||
$query->expr()->orX(
|
||||
$query->expr()->gt('e.desactivationDate', ':now'),
|
||||
$query->expr()->isNull('e.desactivationDate')
|
||||
)
|
||||
);
|
||||
$qb->setParameter('now', new DateTimeImmutable());
|
||||
$qb->addOrderBy('si.ordering', 'ASC');
|
||||
|
||||
$qb->getQuery()
|
||||
->setHint(Query::HINT_INCLUDE_META_COLUMNS, true)
|
||||
->getResult(FlatHierarchyEntityHydrator::LIST);
|
||||
|
||||
$qb->addOrderBy('GET_JSON_FIELD_BY_KEY(si.title, :locale)', 'ASC')
|
||||
->setParameter(':locale', $request->getLocale());
|
||||
|
||||
$socialIssues = $qb->getQuery()->getResult();
|
||||
|
||||
return new JsonResponse(
|
||||
$this->serializer->serialize(['count' => count($socialIssues), 'results' => $socialIssues], 'json', ['groups' => ['read']]),
|
||||
JsonResponse::HTTP_OK,
|
||||
[],
|
||||
true
|
||||
);
|
||||
$query->setParameter('now', new DateTimeImmutable());
|
||||
}
|
||||
|
||||
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator, $_format)
|
||||
{
|
||||
$query->addOrderBy('ordering', 'ASC');
|
||||
return $query;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user