protected function syncCourses() { $em = $this->getEntityManager(); $courseRepo = $em->getRepository(Course::class); $l2p = $this->getClient(); $owner = $this->getAuthService()->getIdentity(); $response = $l2p->request('viewAllCourseInfo'); $courseinfo = json_decode($response['output']); if ($response['code'] != 200) { return false; } $result = array('status' => true, 'new' => array()); foreach ($courseinfo->dataSet as $course) { $found = $courseRepo->findOneBy(array('owner' => $owner, 'courseroom' => $course->uniqueid)); if (!$found) { $newCourse = new Course(); $newCourse->setCourseroom($course->uniqueid); $newCourse->setTitle($course->courseTitle); $newCourse->setOwner($owner); $em->persist($newCourse); $em->flush($newCourse); $semester = $this->findSemester($course->semester); $newEdge = new Edge(); $newEdge->setFrom($semester)->setTo($newCourse); $em->persist($newEdge); $em->flush($newEdge); $result['new'][] = $newCourse->jsonSerialize(); } } return $result; }