accompanyingPeriodWorkRepository = $accompanyingPeriodWorkRepository; } protected function getContextForSerialization(string $action, Request $request, string $_format, $entity): array { switch ($action) { case '_entity': switch ($request->getMethod()) { case Request::METHOD_PUT: return ['groups' => ['accompanying_period_work:edit']]; } } return parent::getContextForSerialization($action, $request, $_format, $entity); } /** * @Route("/api/1.0/person/accompanying-period/work/my-near-end") * * @param Request $request * @return JsonResponse */ public function myWorksNearEndDate(Request $request): JsonResponse { $since = (new \DateTimeImmutable('now'))->sub(new \DateInterval('P15D')); $until = (new \DateTimeImmutable('now'))->add(new \DateInterval('P15D')); $total = $this->accompanyingPeriodWorkRepository ->countNearEndDateByUser($this->getUser(), $since, $until); $paginator = $this->getPaginatorFactory()->create($total); $works = $this->accompanyingPeriodWorkRepository ->findNearEndDateByUser($this->getUser(), $since, $until, $paginator->getItemsPerPage(), $paginator->getCurrentPageFirstItemNumber()); $collection = new Collection($works, $paginator); return $this->json($collection, 200, [], ['groups' => ['read']]); } }