MDL-47162 core_message: debug whenever courseid is missing
[moodle.git] / lib / classes / event / message_sent.php
index 0ea9a15..e330919 100644 (file)
@@ -44,10 +44,11 @@ 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
+     * @param int|null $courseid course id the event is related with. Use SITEID if no relation exists.
      * @return message_sent
      */
     public static function create_from_ids($userfromid, $usertoid, $messageid, $courseid = null) {
@@ -58,8 +59,13 @@ 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(
@@ -152,7 +158,7 @@ class message_sent extends base {
         }
 
         if (!isset($this->other['courseid'])) {
-            debugging('The \'courseid\' value must be set in other.', DEBUG_DEVELOPER);
+            throw new \coding_exception('The \'courseid\' value must be set in other.');
         }
     }