コード例 #1
0
 public function test_successful_save_for_new_item()
 {
     $question = new \WeBWorK\Server\Question();
     $question->set_content('foo');
     $question->set_problem_id(20);
     $saved = $question->save();
     $this->assertTrue($saved);
     $new_question = new \WeBWorK\Server\Question($question->get_id());
     $this->assertSame('foo', $new_question->get_content());
     $this->assertSame('20', $new_question->get_problem_id());
 }
コード例 #2
0
 public function create_item($request)
 {
     $params = $request->get_params();
     $problem_id = $params['problem_id'];
     $content = $params['content'];
     $tried = $params['tried'];
     $problem_data = null;
     if (isset($params['post_data_key'])) {
         $post_data_key = $params['post_data_key'];
         $problem_data = get_option($post_data_key);
         // Don't ever keep this data around.
         delete_option($post_data_key);
     }
     // Try fetching another question from the same problem.
     if (!$problem_data) {
         $query = new Query(array('problem_id' => $problem_id));
         $questions = $query->get();
         foreach ($questions as $q) {
             if ($q->get_problem_text()) {
                 $problem_data = array('problem_id' => $q->get_problem_id(), 'problem_set' => $q->get_problem_set(), 'course' => $q->get_course(), 'section' => $q->get_section(), 'problem_text' => $q->get_problem_text());
                 break;
             }
         }
     }
     $question = new \WeBWorK\Server\Question();
     $question->set_author_id(get_current_user_id());
     $question->set_content($content);
     $question->set_tried($tried);
     $question->set_problem_id($problem_data['problem_id']);
     $question->set_problem_set($problem_data['problem_set']);
     $question->set_course($problem_data['course']);
     $question->set_section($problem_data['section']);
     $question->set_problem_text($problem_data['problem_text']);
     if ($question->save()) {
         $query = new Query(array('question_id' => $question->get_id()));
         $results = $query->get_for_endpoint();
         // @todo not found?
         $retval = reset($results);
         $r = rest_ensure_response($retval);
         $r->set_status(201);
     } else {
         $r = rest_ensure_response(false);
         $r->set_status(500);
     }
     return $r;
 }
コード例 #3
0
 public function create_item($request)
 {
     $params = $request->get_params();
     $problem_id = $params['problem_id'];
     $content = $params['content'];
     $tried = $params['tried'];
     $question = new \WeBWorK\Server\Question();
     $question->set_author_id(get_current_user_id());
     $question->set_content($content);
     $question->set_tried($tried);
     $question->set_problem_id($problem_id);
     if ($question->save()) {
         $retval = array('questionId' => $question->get_id(), 'content' => $question->get_content(), 'tried' => $question->get_tried(), 'authorAvatar' => $question->get_author_avatar(), 'authorName' => $question->get_author_name());
         $r = rest_ensure_response($retval);
         $r->set_status(201);
     } else {
         $r = rest_ensure_response(false);
         $r->set_status(500);
     }
     return $r;
 }