/** * Adds an exercise. * * Called when this component receives an HTTP POST request to * /exercise(/). * The request body should contain a JSON object representing the exercise's * attributes. */ public function addExercise($callName, $input, $params = array()) { $positive = function ($input) { // sets the new auto-increment id $obj = new Exercise(); $obj->setId($input[0]->getInsertId()); return array("status" => 201, "content" => $obj); }; return $this->_component->callSqlTemplate('out', dirname(__FILE__) . '/Sql/AddExercise.sql', array('values' => $input->getInsertData()), 201, $positive, array(), 'Model::isProblem', array(new Exercise())); }
function loadExercise( $exercise_id ) { if ( !is_int( $exercise_id ) ) throw new Exception( "persist; loadExercise exercise_id is not an integer" ); global $mysql_info; DBTools::connect( $mysql_info ); $exercise_id = mysql_real_escape_string( $exercise_id ); $row = DBTools::doQuery( "select * from exercises where id=\"$exercise_id\"" ); $exercise = new Exercise(); $exercise->setId( $exercise_id ); $exercise->loadXML( $row["exercise"] ); $exercise->setQuestionLanguages( explode( ",", $row["questionLanguages"] ) ); $exercise->setAnswerLanguages( explode( ",", $row["answerLanguages"] ) ); return $exercise; }