Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
84.62% covered (warning)
84.62%
11 / 13
83.33% covered (warning)
83.33%
5 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 1
case_updated
84.62% covered (warning)
84.62%
11 / 13
83.33% covered (warning)
83.33%
5 / 6
8.23
0.00% covered (danger)
0.00%
0 / 1
 init
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 get_name
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get_description
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 get_url
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 validate_data
60.00% covered (warning)
60.00%
3 / 5
0.00% covered (danger)
0.00%
0 / 1
3.58
 get_objectid_mapping
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2// This file is part of Moodle - https://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <https://www.gnu.org/licenses/>.
16
17namespace local_integritycase\event;
18
19/**
20 * Logged when an integrity case is moved, noted, answered or appealed.
21 *
22 * @package    local_integritycase
23 * @copyright  2026 DevLMS <contact@devlms.com>
24 * @license    https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 */
26class case_updated extends \core\event\base {
27    /**
28     * Set the basic event data.
29     */
30    protected function init() {
31        $this->data['crud'] = 'u';
32        $this->data['edulevel'] = self::LEVEL_TEACHING;
33        $this->data['objecttable'] = 'local_integritycase';
34    }
35
36    /**
37     * Event name.
38     *
39     * @return string
40     */
41    public static function get_name() {
42        return get_string('event:caseupdated', 'local_integritycase');
43    }
44
45    /**
46     * Event description for the logs.
47     *
48     * @return string
49     */
50    public function get_description() {
51        return "The user with id '{$this->userid}' updated integrity case '{$this->objectid}' "
52            . "about the user with id '{$this->relateduserid}'.";
53    }
54
55    /**
56     * Where the case can be seen.
57     *
58     * @return \moodle_url
59     */
60    public function get_url() {
61        return new \moodle_url('/local/integritycase/view.php', ['id' => $this->objectid]);
62    }
63
64    /**
65     * Check the stage is given.
66     *
67     * @throws \coding_exception
68     */
69    protected function validate_data() {
70        parent::validate_data();
71        if (!isset($this->relateduserid)) {
72            throw new \coding_exception('The relateduserid must be set.');
73        }
74        if (!isset($this->other['stage'])) {
75            throw new \coding_exception('The stage must be set in other.');
76        }
77    }
78
79    /**
80     * Backup mapping for the object id.
81     *
82     * @return array
83     */
84    public static function get_objectid_mapping() {
85        return ['db' => 'local_integritycase', 'restore' => self::NOT_MAPPED];
86    }
87}