コード例 #1
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;
 }
コード例 #2
0
 public function test_set_course()
 {
     $q = self::factory()->question->create();
     $question = new \WeBWorK\Server\Question($q);
     $course = 'foo';
     $question->set_course($course);
     $this->assertTrue($question->save());
     $question2 = new \WeBWorK\Server\Question($q);
     $this->assertSame($course, $question2->get_course());
 }