Beispiel #1
0
 public static function post(\election\Resource\Student $student)
 {
     $request = \Server::getCurrentRequest();
     // Vote is for the current logged student only. We do not depend on the post.
     $election = Election::getCurrent();
     $election_id = $election['id'];
     $election_id_match = $request->getVar('electionId');
     if ($election_id_match != $election_id) {
         throw new \Exception('Election id does not match current election');
     }
     // need to start a transaction here
     $db = \Database::getDB();
     $db->begin(true);
     if ($request->isVar('single')) {
         $single_result = $request->getVar('single');
         self::saveSingleResult($election_id, $single_result, $student);
     }
     if ($request->isVar('multiple')) {
         $multiple_result = $request->getVar('multiple');
         self::saveMultipleResult($election_id, $multiple_result, $student);
     }
     if ($request->isVar('referendum')) {
         $referendum_result = $request->getVar('referendum');
         self::saveReferendumResult($election_id, $referendum_result, $student);
     }
     self::complete($election_id, $student->getBannerId());
     $db->commit();
     self::emailStudent($student, $election);
     $json['surveyLink'] = \PHPWS_Settings::get('election', 'surveyLink');
     $json['supportLink'] = \PHPWS_Settings::get('election', 'surveyLink');
     $json['success'] = true;
     return $json;
 }