public function index()
 {
     $this->authenticateAdmin();
     $all = $this->input->get('unassigned');
     $routes = array();
     if (!isset($all)) {
         $query = $this->db->get('routes');
     } else {
         $this->db->select('routes.* ');
         $query = $this->db->join('timings', 'timings.route_id = routes.id', 'LEFT OUTER')->join('driver_timings', 'driver_timings.timing_id = timings.id', 'LEFT OUTER')->group_by('routes.id')->where('driver_timings.timing_id', NULL)->get('routes');
     }
     foreach ($query->result() as $route_row) {
         $route = Route_model::initialize($route_row);
         array_push($routes, $route->asJson());
     }
     $this->output->set_status_header(200)->set_output(json_encode($routes));
 }
 public function studentRoute()
 {
     $row = $this->db->select('routes.*')->join('timings', 'timings.route_id = routes.id', 'INNER')->join('student_timings', 'student_timings.timing_id = timings.id', 'INNER')->where('student_timings.student_id', $this->id)->get('routes')->row();
     if (isset($row)) {
         return [Route_model::initialize($row)->asJson($this)];
     } else {
         return array();
     }
 }