public function test_successful_save_for_existing_item() { $q = self::factory()->question->create(array('problem_id' => 15, 'tried' => 'foo tried')); $question = new \WeBWorK\Server\Question($q); $question->set_content('foo'); $question->set_tried('bar tried'); $question->set_problem_id(20); $saved = $question->save(); $this->assertTrue($saved); $new_question = new \WeBWorK\Server\Question($q); $this->assertSame('foo', $new_question->get_content()); $this->assertSame('20', $new_question->get_problem_id()); $this->assertSame('bar tried', $new_question->get_tried()); }
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; }