diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php b/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php index 2b882627c..ed2b3122c 100644 --- a/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php +++ b/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php @@ -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; + + } + } diff --git a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php index b785ad0ca..01df460e3 100644 --- a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php +++ b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php @@ -455,27 +455,27 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac ], ], ], - // [ - // 'class' => \Chill\PersonBundle\Entity\SocialWork\SocialIssue::class, - // 'name' => 'social_work_social_issue', - // 'controller' => \Chill\PersonBundle\Controller\SocialIssueApiController::class, - // 'base_path' => '/api/1.0/person/social-work/social-issue', - // 'base_role' => 'ROLE_USER', - // 'actions' => [ - // '_index' => [ - // 'methods' => [ - // Request::METHOD_GET => true, - // Request::METHOD_HEAD => true, - // ], - // ], - // '_entity' => [ - // 'methods' => [ - // Request::METHOD_GET => true, - // Request::METHOD_HEAD => true, - // ], - // ], - // ], - // ], + [ + 'class' => \Chill\PersonBundle\Entity\SocialWork\SocialIssue::class, + 'name' => 'social_work_social_issue', + 'controller' => \Chill\PersonBundle\Controller\SocialIssueApiController::class, + 'base_path' => '/api/1.0/person/social-work/social-issue', + 'base_role' => 'ROLE_USER', + 'actions' => [ + '_index' => [ + 'methods' => [ + Request::METHOD_GET => true, + Request::METHOD_HEAD => true, + ], + ], + '_entity' => [ + 'methods' => [ + Request::METHOD_GET => true, + Request::METHOD_HEAD => true, + ], + ], + ], + ], [ 'class' => \Chill\PersonBundle\Entity\Person::class, 'name' => 'person', diff --git a/src/Bundle/ChillPersonBundle/config/routes.yaml b/src/Bundle/ChillPersonBundle/config/routes.yaml index c31f502fd..13d1c1227 100644 --- a/src/Bundle/ChillPersonBundle/config/routes.yaml +++ b/src/Bundle/ChillPersonBundle/config/routes.yaml @@ -199,7 +199,3 @@ chill_person_social_result_admin: chill_person_controllers: resource: "@ChillPersonBundle/Controller" type: annotation - -social_work_social_issue: - path: "/api/1.0/person/social-work/social-issue.json" - controller: Chill\PersonBundle\Controller\SocialIssueApiController::indexAction \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/config/services/controller.yaml b/src/Bundle/ChillPersonBundle/config/services/controller.yaml index 228ec4d34..f8d1143a4 100644 --- a/src/Bundle/ChillPersonBundle/config/services/controller.yaml +++ b/src/Bundle/ChillPersonBundle/config/services/controller.yaml @@ -67,6 +67,3 @@ services: autowire: true tags: ['controller.service_arguments'] - Chill\PersonBundle\Controller\SocialIssueApiController: - autowire: true - autoconfigure: true