protected function getFields()
 {
     $router = $this->getContainer()->get('router');
     $fields = array();
     $subject = $this->getEntity();
     // Subject name
     $fields[] = SwiftypeField::get('name', $subject->getName(), SwiftypeField::FIELD_STRING);
     // Slug
     $fields[] = SwiftypeField::get('slug', $subject->getSlug(), SwiftypeField::FIELD_STRING);
     // Course count
     $fields[] = SwiftypeField::get('courseCount', $subject->getCourseCount(), SwiftypeField::FIELD_INTEGER);
     // url
     $fields[] = SwiftypeField::get('url', $router->generate('ClassCentralSiteBundle_stream', array('slug' => $subject->getSlug())), SwiftypeField::FIELD_ENUM);
     return $fields;
 }
 protected function getFields()
 {
     $router = $this->getContainer()->get('router');
     $repository = $this->getContainer()->get('doctrine')->getManager()->getRepository('ClassCentralSiteBundle:Institution');
     $fields = array();
     $institution = $this->getEntity();
     // Institution name
     $fields[] = SwiftypeField::get('name', $institution->getName(), SwiftypeField::FIELD_STRING);
     // Institution course count
     $fields[] = SwiftypeField::get('courseCount', $repository->getCourseCountByInstitution($institution), SwiftypeField::FIELD_INTEGER);
     // Insititution slug
     $fields[] = SwiftypeField::get('slug', $institution->getSlug(), SwiftypeField::FIELD_STRING);
     // Institution url
     $route = 'ClassCentralSiteBundle_institution';
     if ($institution->getIsUniversity()) {
         $route = 'ClassCentralSiteBundle_university';
     }
     $url = $router->generate($route, array('slug' => $institution->getSlug()));
     $fields[] = SwiftypeField::get('url', $url, SwiftypeField::FIELD_ENUM);
     return $fields;
 }
 protected function getFields()
 {
     $fields = array();
     $course = $this->getEntity();
     $router = $this->getContainer()->get('router');
     // Course name
     $fields[] = SwiftypeField::get('name', $course->getName(), SwiftypeField::FIELD_STRING);
     // Course url;
     $fields[] = SwiftypeField::get('url', $router->generate('ClassCentralSiteBundle_mooc', array('id' => $course->getId(), 'slug' => $course->getSlug())), SwiftypeField::FIELD_ENUM);
     // provider
     $provider = 'Independent';
     if ($course->getInitiative()) {
         $provider = $course->getInitiative()->getName();
     }
     $fields[] = SwiftypeField::get('provider', $provider, SwiftypeField::FIELD_ENUM);
     // Institutions
     $institutions = array();
     if ($course->getInstitutions()) {
         foreach ($course->getInstitutions() as $ins) {
             $institutions[] = $ins->getName();
         }
     }
     $fields[] = SwiftypeField::get('institutions', $institutions, SwiftypeField::FIELD_ENUM);
     // Instructors
     $instructors = array();
     if ($course->getInstructors()) {
         foreach ($course->getInstructors() as $ins) {
             $instructors[] = $ins->getName();
         }
     }
     $fields[] = SwiftypeField::get('instructors', $instructors, SwiftypeField::FIELD_TEXT);
     // Status
     $fields[] = SwiftypeField::get('status', $course->getStatus(), SwiftypeField::FIELD_INTEGER);
     // Display date
     $nextOffering = $course->getNextOffering();
     if ($nextOffering) {
         $fields[] = SwiftypeField::get('displayDate', $nextOffering->getDisplayDate(), SwiftypeField::FIELD_ENUM);
     }
     return $fields;
 }