public function getClass($param, $exportReq)
 {
     # need at least 1 param for this store procedure
     if (isset($param[0])) {
         # always force exec_proc when csv requested
         if ($exportReq) {
             $a = $this->conn->exec_proc('get_students_for_survey', $param, $exportReq);
             return $a;
         }
         # build manifest
         $attr = splice::getEndpointAttr($_SESSION['j']['endpoints'], $this);
         $respStarter = splice::respManifest($attr['id'], $attr['name'], $attr['version'], $attr['options']);
         # cache state | exec_proc
         $a = phpFastCache::get('student_survey' . $param[0]);
         if ($a == null) {
             $a = $this->conn->exec_proc('get_students_for_survey', $param, $exportReq);
             phpFastCache::set('student_survey' . $param[0], json_decode($a));
         } else {
             $a = json_encode($a, JSON_PRETTY_PRINT);
         }
         ##
         $res = str_replace('%__dataset__%', $a, $respStarter);
         return $res;
     } else {
         throw new \Exception('-- missing params --');
     }
 }
 public function getPosseStudent($param, $exportReq)
 {
     # always force exec_proc when csv requested
     if ($exportReq) {
         $a = $this->conn->exec_proc('get_posse_students', $param, $exportReq);
         return $a;
     }
     # build manifest
     $attr = splice::getEndpointAttr($_SESSION['j']['endpoints'], $this);
     $respStarter = splice::respManifest($attr['id'], $attr['name'], $attr['version'], $attr['options']);
     ##
     # cache state | exec_proc
     $a = phpFastCache::get('posse');
     if ($a == null) {
         $a = $this->conn->exec_proc('get_posse_students', $param, $exportReq);
         phpFastCache::set('posse', json_decode($a));
     } else {
         $a = json_encode($a, JSON_PRETTY_PRINT);
     }
     ##
     $res = str_replace('%__dataset__%', $a, $respStarter);
     return $res;
 }