function execute($request) { $language_info = api_autograder_get_language_info($request['path_parts'][1]); if ($language_info == null) { return build_response_not_found("Language not found."); } $language_key = $language_info['key']; $language_id = $language_info['language_id']; $problems = api_autograder_menu_get_problems($request['user_id'], 'practice', 0, $language_id); debug_print($problems); if ($problems['OK']) { $output = array('<h1>' . htmlspecialchars($language_info['name']) . ' Practice Problems</h1>'); if (count($problems['ordered_problem_ids']) == 0) { array_push($output, "<div>Empty!</div>"); } foreach ($problems['ordered_problem_ids'] as $problem_id) { $problem_info = $problems['problem_' . $problem_id]; array_push($output, '<div><a href="/practice/' . $language_key . '/' . $problem_id . '">'); array_push($output, htmlspecialchars($problem_info['title'])); array_push($output, '</a></div>'); } return build_response_ok($language_info['title'] . " Practice Problems", implode("\n", $output)); } else { if ($problems['message'] == 'INVALID_LANGUAGE') { return build_response_not_found("Language not found."); } } }
function api_autograder_create_new_item($user_id, $feature, $callback_arg, $language_key_or_id, $code, $problem_id) { $language_info = api_autograder_get_language_info($language_key_or_id); if ($language_info == null || !$language_info['auto_grader_supported']) { return api_error('LANG_NOT_SUPPORTED'); } $token = api_autograder_get_new_token(); $item_id = sql_insert('auto_grader_queue', array('user_id' => $user_id, 'token' => $token, 'state' => 'NOT_STARTED', 'is_not_started' => 1, 'time_created' => time(), 'time_processed' => 0, 'time_finished' => 0, 'language_id' => $language_info['language_id'], 'code' => $code, 'problem_id' => $problem_id, 'output' => '', 'callback_arg' => $callback_arg, 'feature' => $feature)); return api_success(array('item_id' => $item_id, 'token' => $token)); }
function execute($request) { $language_info = api_autograder_get_language_info($request['path_parts'][1]); $problem_id = intval($request['path_parts'][2]); if ($problem_id == 0 || $language_info == null) { return build_response_not_found("Problem not found."); } $problem = api_autograder_menu_get_problem($request['user_id'], $language_info['language_id'], 'practice', 0, $problem_id); if ($problem == null) { return build_response_not_found("Problem not found."); } $output = array('<h1>' . htmlspecialchars($problem['title']) . '</h1>', '<div>', nl2br(htmlspecialchars($problem['statement'])), '</div>', api_autograder_generate_client_html('practice', $language_info, $problem['template'], $problem_id)); return build_response_ok('Problem', implode("\n", $output), array('js' => 'autograder.js', 'onload' => "ag_init('practice')")); }