/**
  * @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);
 }