MDL-55449 messages: Remove support for stdClass messages.

This also makes message_sent::create_from_ids() $courseid
parameter required.
This commit is contained in:
Adrian Greeve
2018-08-07 11:04:22 +08:00
parent 6e020b161a
commit cc4952e997
5 changed files with 8 additions and 56 deletions
+2 -12
View File
@@ -43,14 +43,13 @@ defined('MOODLE_INTERNAL') || die();
class message_sent extends base {
/**
* Create event using ids.
* @todo MDL-55449 Make $courseid mandatory in Moodle 3.6
* @param int $userfromid
* @param int $usertoid
* @param int $messageid
* @param int|null $courseid course id the event is related with. Use SITEID if no relation exists.
* @param int $courseid course id the event is related with.
* @return message_sent
*/
public static function create_from_ids($userfromid, $usertoid, $messageid, $courseid = null) {
public static function create_from_ids(int $userfromid, int $usertoid, int $messageid, int $courseid) {
// We may be sending a message from the 'noreply' address, which means we are not actually sending a
// message from a valid user. In this case, we will set the userid to 0.
// Check if the userid is valid.
@@ -58,15 +57,6 @@ class message_sent extends base {
$userfromid = 0;
}
// TODO: MDL-55449 Make $courseid mandatory in Moodle 3.6.
if (is_null($courseid)) {
// Arrived here with not defined $courseid to associate the event with.
// Let's default to SITEID and perform debugging so devs are aware. MDL-47162.
$courseid = SITEID;
debugging('message_sent::create_from_ids() needs a $courseid to be passed, nothing was detected. Please, change ' .
'the call to include it, using SITEID if the message is unrelated to any real course.', DEBUG_DEVELOPER);
}
$event = self::create(array(
'objectid' => $messageid,
'userid' => $userfromid,
+1 -17
View File
@@ -50,30 +50,14 @@ class manager {
*
* NOTE: to be used from message_send() only.
*
* @todo MDL-55449 Drop support for stdClass in Moodle 3.6
* @param \core\message\message $eventdata fully prepared event data for processors
* @param \stdClass $savemessage the message saved in 'message' table
* @param array $processorlist list of processors for target user
* @return int $messageid the id from 'messages' (false is not returned)
*/
public static function send_message($eventdata, \stdClass $savemessage, array $processorlist) {
public static function send_message(message $eventdata, \stdClass $savemessage, array $processorlist) {
global $CFG;
// TODO MDL-55449 Drop support for stdClass in Moodle 3.6.
if (!($eventdata instanceof \stdClass) && !($eventdata instanceof message)) {
// Not a valid object.
throw new \coding_exception('Message should be of type stdClass or \core\message\message');
}
// TODO MDL-55449 Drop support for stdClass in Moodle 3.6.
if ($eventdata instanceof \stdClass) {
if (!isset($eventdata->courseid)) {
$eventdata->courseid = null;
}
debugging('eventdata as \stdClass is deprecated. Please use \core\message\message instead.', DEBUG_DEVELOPER);
}
require_once($CFG->dirroot.'/message/lib.php'); // This is most probably already included from messagelib.php file.
if (empty($processorlist)) {