Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions db/services.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,14 @@
'description' => 'Get Markers feedbacks',
'capabilities' => 'mod/assign:view',
'type' => 'read',
],
'api_ext_update_assessment' => [
'classname' => 'api_extend',
'methodname' => 'update_assessment',
'classpath' => 'local/api_extend/externallib.php',
'description' => 'Update Course Assessment',
'capabilities' => 'moodle/course:update',
'type' => 'write',
]
];

Expand Down
77 changes: 77 additions & 0 deletions externallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -702,4 +702,81 @@ public static function get_markers_feedback_returns(): external_multiple_structu
);
}



/**
* Returns description of method parameters
*
* @return external_function_parameters
*/
public static function update_assessment_parameters()
{
return new external_function_parameters([
'instanceid' => new external_value(PARAM_INT, 'The assignment id'),
'courseid' => new external_value(PARAM_INT, 'The course id'),
'duedate' => new external_value(PARAM_INT, 'The due date')
]);
}

/**
* Update Course Assessment
*
* @param $instanceid
* @param $courseid
* @param $duedate
* @return array | false
* @throws dml_exception
* @throws invalid_parameter_exception
* @throws required_capability_exception
*/
public static function update_assessment($instanceid, $courseid, $duedate)
{
global $DB;

//Parameter validation
$params = self::validate_parameters(
self::update_assessment_parameters(),
[
'instanceid' => $instanceid,
'courseid' => $courseid,
'duedate' => $duedate,
]
);

$context = context_system::instance();
require_capability('moodle/course:update', $context);

$sql = "SELECT a.id
FROM {assign} a
WHERE a.id = :id AND a.course = :courseid";

$record = $DB->get_record_sql($sql, ['id' => $params['instanceid'], 'courseid' => $params['courseid']], MUST_EXIST);

if(empty($record)) {
return false;
}

$rec = new stdclass();
$rec->id = $record->id;
$rec->duedate = $duedate;

$DB->update_record('assign', $rec);

return (array)$record;

}

/**
* Returns description of method result value
*
* @return external_single_structure
*/
public static function update_assessment_returns(): external_single_structure
{
return new external_single_structure(
[
'id' => new external_value(PARAM_INT, 'The course assessment id'),
]
);
}
}
2 changes: 1 addition & 1 deletion version.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

defined('MOODLE_INTERNAL') || die;

$plugin->version = 2022111400;
$plugin->version = 2022120700;
$plugin->requires = 2018051700; // Requires this Moodle version - at least 2.0
$plugin->component = 'local_api_extend';
$plugin->release = '0.2';
Expand Down