/** * @param ServerRequestInterface $request * @param ResponseInterface $response * @param callable|null $next * @return JsonResponse */ public function getList(ServerRequestInterface $request, ResponseInterface $response, callable $next = null) { $params = $request->getQueryParams(); $teacherId = $params['teacher_id'] ?: null; /** @var WebServiceResponse $result */ $result = $this->classroomWebService->get('/api/teacher/classroom/' . $teacherId); $classroom = $this->classroomWebService->getData($result); $studentIds = array(); foreach ($classroom as $data) { if (isset($data['student_id'])) { $studentIds[] = $data['student_id']; } } $in = new In('id', $studentIds); $collection = $this->studentService->findAll(array($in)); $result = array(); foreach ($collection as $student) { /** @var StudentEntity $student */ $result[] = array('id' => $student->getId(), 'first_name' => $student->getFirstName(), 'last_name' => $student->getLastName(), 'earned_stars' => $student->getEarnedStarts(), 'email' => $student->getEmail(), 'added_at' => $student->getAddedAt(), 'last_modified' => $student->getLastModified(), 'icon' => $student->getUserIcon()); } return new JsonResponse($result); }