json($output->success([ 'ratings' => array_map( fn(Rating $rating) => [ 'id' => $rating->getId(), 'score' => $rating->getScore(), 'subject' => [ 'id' => $rating->getSubject()->getId(), 'name' => $rating->getSubject()->getName(), ], ], $repo->findAll() ), ])); } #[Route('/api/ratings', methods: ['POST'])] public function create( Request $request, EntityManagerInterface $em, OutputService $output, SubjectRepository $subjectRepository, ): JsonResponse { $subject = $subjectRepository->findById($request->getPayload()->get('subject_id')); if ($subject === null) { return $this->json( $output->error(["UNKNOWN_SUBJECT"]) ); } $rating = new Rating(); $rating->setSubject($subject); $rating->setScore($request->getPayload()->get('score')); $em->persist($rating); $em->flush(); return $this->json(null, 201); } }