Skip to content

Commit 602ca27

Browse files
Merge pull request #8 from ydemetriou/master
assessment due date
2 parents aaf6700 + 389c9df commit 602ca27

File tree

3 files changed

+86
-1
lines changed

3 files changed

+86
-1
lines changed

db/services.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@
9595
'description' => 'Get Markers feedbacks',
9696
'capabilities' => 'mod/assign:view',
9797
'type' => 'read',
98+
],
99+
'api_ext_update_assessment' => [
100+
'classname' => 'api_extend',
101+
'methodname' => 'update_assessment',
102+
'classpath' => 'local/api_extend/externallib.php',
103+
'description' => 'Update Course Assessment',
104+
'capabilities' => 'moodle/course:update',
105+
'type' => 'write',
98106
]
99107
];
100108

externallib.php

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,4 +702,81 @@ public static function get_markers_feedback_returns(): external_multiple_structu
702702
);
703703
}
704704

705+
706+
707+
/**
708+
* Returns description of method parameters
709+
*
710+
* @return external_function_parameters
711+
*/
712+
public static function update_assessment_parameters()
713+
{
714+
return new external_function_parameters([
715+
'instanceid' => new external_value(PARAM_INT, 'The assignment id'),
716+
'courseid' => new external_value(PARAM_INT, 'The course id'),
717+
'duedate' => new external_value(PARAM_INT, 'The due date')
718+
]);
719+
}
720+
721+
/**
722+
* Update Course Assessment
723+
*
724+
* @param $instanceid
725+
* @param $courseid
726+
* @param $duedate
727+
* @return array | false
728+
* @throws dml_exception
729+
* @throws invalid_parameter_exception
730+
* @throws required_capability_exception
731+
*/
732+
public static function update_assessment($instanceid, $courseid, $duedate)
733+
{
734+
global $DB;
735+
736+
//Parameter validation
737+
$params = self::validate_parameters(
738+
self::update_assessment_parameters(),
739+
[
740+
'instanceid' => $instanceid,
741+
'courseid' => $courseid,
742+
'duedate' => $duedate,
743+
]
744+
);
745+
746+
$context = context_system::instance();
747+
require_capability('moodle/course:update', $context);
748+
749+
$sql = "SELECT a.id
750+
FROM {assign} a
751+
WHERE a.id = :id AND a.course = :courseid";
752+
753+
$record = $DB->get_record_sql($sql, ['id' => $params['instanceid'], 'courseid' => $params['courseid']], MUST_EXIST);
754+
755+
if(empty($record)) {
756+
return false;
757+
}
758+
759+
$rec = new stdclass();
760+
$rec->id = $record->id;
761+
$rec->duedate = $duedate;
762+
763+
$DB->update_record('assign', $rec);
764+
765+
return (array)$record;
766+
767+
}
768+
769+
/**
770+
* Returns description of method result value
771+
*
772+
* @return external_single_structure
773+
*/
774+
public static function update_assessment_returns(): external_single_structure
775+
{
776+
return new external_single_structure(
777+
[
778+
'id' => new external_value(PARAM_INT, 'The course assessment id'),
779+
]
780+
);
781+
}
705782
}

version.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
defined('MOODLE_INTERNAL') || die;
2424

25-
$plugin->version = 2022111400;
25+
$plugin->version = 2022120700;
2626
$plugin->requires = 2018051700; // Requires this Moodle version - at least 2.0
2727
$plugin->component = 'local_api_extend';
2828
$plugin->release = '0.2';

0 commit comments

Comments
 (0)