@@ -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}
0 commit comments