mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
MDL-63280 core: removed 'message_conversation_area' table
These new fields have been added to the 'message_conversations' table.
This commit is contained in:
parent
5571af1614
commit
76540bec52
@ -278,8 +278,15 @@ function groups_create_group($data, $editform = false, $editoroptions = false) {
|
||||
// Group conversation messaging.
|
||||
if (\core_message\api::can_create_group_conversation($USER->id, $context)) {
|
||||
if (!empty($data->enablemessaging)) {
|
||||
\core_message\api::create_conversation_area('core_group', 'groups', $group->id, $group->name, $context->id,
|
||||
\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED);
|
||||
\core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP,
|
||||
[],
|
||||
$group->name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_ENABLED,
|
||||
'core_group',
|
||||
'groups',
|
||||
$group->id,
|
||||
$context->id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -423,18 +430,26 @@ function groups_update_group($data, $editform = false, $editoroptions = false) {
|
||||
|
||||
// Group conversation messaging.
|
||||
if (\core_message\api::can_create_group_conversation($USER->id, $context)) {
|
||||
if ($conversationarea = \core_message\api::get_conversation_area('core_group', 'groups', $group->id, $context->id)) {
|
||||
if ($data->enablemessaging && $data->enablemessaging != $conversationarea->enabled) {
|
||||
\core_message\api::enable_conversation_area($conversationarea->id);
|
||||
if ($conversation = \core_message\api::get_conversation_by_area('core_group', 'groups', $group->id, $context->id)) {
|
||||
if ($data->enablemessaging && $data->enablemessaging != $conversation->enabled) {
|
||||
\core_message\api::enable_conversation($conversation->id);
|
||||
}
|
||||
if (!$data->enablemessaging && $data->enablemessaging != $conversationarea->enabled) {
|
||||
\core_message\api::disable_conversation_area($conversationarea->id);
|
||||
if (!$data->enablemessaging && $data->enablemessaging != $conversation->enabled) {
|
||||
\core_message\api::disable_conversation($conversation->id);
|
||||
}
|
||||
\core_message\api::update_conversation_name($conversationarea->conversationid, $group->name);
|
||||
\core_message\api::update_conversation_name($conversation->id, $group->name);
|
||||
} else {
|
||||
if (!empty($data->enablemessaging)) {
|
||||
\core_message\api::create_conversation_area('core_group', 'groups', $group->id, $group->name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED);
|
||||
\core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP,
|
||||
[],
|
||||
$group->name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_ENABLED,
|
||||
'core_group',
|
||||
'groups',
|
||||
$group->id,
|
||||
$context->id
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -530,9 +530,9 @@ class core_group_lib_testcase extends advanced_testcase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Test groups_create_group enabling a group of conversation.
|
||||
* Test groups_create_group enabling a group conversation.
|
||||
*/
|
||||
public function test_groups_create_group_with_conversation_area() {
|
||||
public function test_groups_create_group_with_conversation() {
|
||||
global $DB;
|
||||
|
||||
$this->resetAfterTest();
|
||||
@ -544,21 +544,21 @@ class core_group_lib_testcase extends advanced_testcase {
|
||||
$group1a = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 1));
|
||||
$group1b = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 0));
|
||||
|
||||
$conversationareas = $DB->get_records('message_conversation_area',
|
||||
$conversations = $DB->get_records('message_conversations',
|
||||
[
|
||||
'contextid' => $coursecontext1->id,
|
||||
'component' => 'core_group',
|
||||
'itemtype' => 'groups',
|
||||
'enabled' => \core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED
|
||||
'enabled' => \core_message\api::MESSAGE_CONVERSATION_ENABLED
|
||||
]
|
||||
);
|
||||
$this->assertCount(1, $conversationareas);
|
||||
$this->assertCount(1, $conversations);
|
||||
|
||||
$conversationarea = reset($conversationareas);
|
||||
$conversation = reset($conversations);
|
||||
// Check groupid was stored in itemid on conversation area.
|
||||
$this->assertEquals($group1a->id, $conversationarea->itemid);
|
||||
$this->assertEquals($group1a->id, $conversation->itemid);
|
||||
|
||||
$conversations = $DB->get_records('message_conversations', ['id' => $conversationarea->conversationid]);
|
||||
$conversations = $DB->get_records('message_conversations', ['id' => $conversation->id]);
|
||||
$this->assertCount(1, $conversations);
|
||||
|
||||
$conversation = reset($conversations);
|
||||
@ -568,9 +568,9 @@ class core_group_lib_testcase extends advanced_testcase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Test groups_update_group enabling and disabling a group of conversation.
|
||||
* Test groups_update_group enabling and disabling a group conversation.
|
||||
*/
|
||||
public function test_groups_update_group_conversation_area() {
|
||||
public function test_groups_update_group_conversation() {
|
||||
global $DB;
|
||||
|
||||
$this->resetAfterTest();
|
||||
@ -582,41 +582,41 @@ class core_group_lib_testcase extends advanced_testcase {
|
||||
$group1a = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 1));
|
||||
$group1b = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 0));
|
||||
|
||||
$conversationareas = $DB->get_records('message_conversation_area',
|
||||
$conversations = $DB->get_records('message_conversations',
|
||||
[
|
||||
'contextid' => $coursecontext1->id,
|
||||
'component' => 'core_group',
|
||||
'itemtype' => 'groups',
|
||||
'enabled' => \core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED
|
||||
'enabled' => \core_message\api::MESSAGE_CONVERSATION_ENABLED
|
||||
]
|
||||
);
|
||||
$this->assertCount(1, $conversationareas);
|
||||
$this->assertCount(1, $conversations);
|
||||
|
||||
// Check that the conversation area is created when group messaging is enabled in the course group.
|
||||
$group1b->enablemessaging = 1;
|
||||
groups_update_group($group1b);
|
||||
|
||||
$conversationareas = $DB->get_records('message_conversation_area',
|
||||
$conversations = $DB->get_records('message_conversations',
|
||||
[
|
||||
'contextid' => $coursecontext1->id,
|
||||
'component' => 'core_group',
|
||||
'itemtype' => 'groups',
|
||||
'enabled' => \core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED
|
||||
'enabled' => \core_message\api::MESSAGE_CONVERSATION_ENABLED
|
||||
],
|
||||
'id ASC');
|
||||
$this->assertCount(2, $conversationareas);
|
||||
$this->assertCount(2, $conversations);
|
||||
|
||||
$conversationarea1a = array_shift($conversationareas);
|
||||
$conversationarea1b = array_shift($conversationareas);
|
||||
$conversation1a = array_shift($conversations);
|
||||
$conversation1b = array_shift($conversations);
|
||||
|
||||
$conversation1b = $DB->get_record('message_conversations', ['id' => $conversationarea1b->conversationid]);
|
||||
$conversation1b = $DB->get_record('message_conversations', ['id' => $conversation1b->id]);
|
||||
|
||||
// Check for group1b that group name was stored in conversation.
|
||||
$this->assertEquals($group1b->name, $conversation1b->name);
|
||||
|
||||
$group1b->enablemessaging = 0;
|
||||
groups_update_group($group1b);
|
||||
$this->assertEquals(0, $DB->get_field("message_conversation_area", "enabled", ['id' => $conversationarea1b->id]));
|
||||
$this->assertEquals(0, $DB->get_field("message_conversations", "enabled", ['id' => $conversation1b->id]));
|
||||
|
||||
// Check that the name of the conversation is changed when the name of the course group is updated.
|
||||
$group1b->name = 'New group name';
|
||||
|
@ -619,35 +619,22 @@
|
||||
<FIELD NAME="type" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="1" SEQUENCE="false"/>
|
||||
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="convhash" TYPE="char" LENGTH="40" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="component" TYPE="char" LENGTH="100" NOTNULL="false" SEQUENCE="false" COMMENT="Defines the Moodle component which the area was added to"/>
|
||||
<FIELD NAME="itemtype" TYPE="char" LENGTH="100" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="itemid" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false" COMMENT="The context id of the itemid or course of the itemtype was added"/>
|
||||
<FIELD NAME="enabled" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
|
||||
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/>
|
||||
</FIELDS>
|
||||
<KEYS>
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
|
||||
<KEY NAME="contextid" TYPE="foreign" FIELDS="contextid" REFTABLE="context" REFFIELDS="id"/>
|
||||
</KEYS>
|
||||
<INDEXES>
|
||||
<INDEX NAME="type" UNIQUE="false" FIELDS="type"/>
|
||||
<INDEX NAME="convhash" UNIQUE="false" FIELDS="convhash"/>
|
||||
</INDEXES>
|
||||
</TABLE>
|
||||
<TABLE NAME="message_conversation_area" COMMENT="Holds the information between Moodle components and conversations">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
|
||||
<FIELD NAME="conversationid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
|
||||
<FIELD NAME="component" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false" COMMENT="Defines the Moodle component which the area was added to"/>
|
||||
<FIELD NAME="itemtype" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false"/>
|
||||
<FIELD NAME="itemid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
|
||||
<FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" COMMENT="The context id of the itemid or course of the itemtype was added"/>
|
||||
<FIELD NAME="enabled" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="timemodified"/>
|
||||
</FIELDS>
|
||||
<KEYS>
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
|
||||
<KEY NAME="conversationid" TYPE="foreign" FIELDS="conversationid" REFTABLE="message_conversations" REFFIELDS="id"/>
|
||||
<KEY NAME="contextid" TYPE="foreign" FIELDS="contextid" REFTABLE="context" REFFIELDS="id"/>
|
||||
</KEYS>
|
||||
<INDEXES>
|
||||
<INDEX NAME="component-itemtype-contextid-itemid" UNIQUE="true" FIELDS="component, itemtype, contextid, itemid"/>
|
||||
<INDEX NAME="component-itemtype-contextid-itemid" UNIQUE="false" FIELDS="component, itemtype, contextid, itemid"/>
|
||||
</INDEXES>
|
||||
</TABLE>
|
||||
<TABLE NAME="message_conversation_members" COMMENT="Stores all members in a conversations">
|
||||
|
@ -2606,26 +2606,47 @@ function xmldb_main_upgrade($oldversion) {
|
||||
}
|
||||
|
||||
if ($oldversion < 2018102300.02) {
|
||||
// Create new 'message_conversation_area' table.
|
||||
$table = new xmldb_table('message_conversation_area');
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null);
|
||||
$table->add_field('conversationid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'id');
|
||||
$table->add_field('component', XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null, 'conversationid');
|
||||
$table->add_field('itemtype', XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null, 'component');
|
||||
$table->add_field('itemid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'itemtype');
|
||||
$table->add_field('contextid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'itemid');
|
||||
$table->add_field('enabled', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0, 'contextid');
|
||||
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'enabled');
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'timecreated');
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, ['id'], null, null);
|
||||
$table->add_key('conversationid', XMLDB_KEY_FOREIGN, ['conversationid'], 'message_conversations', ['id']);
|
||||
$table->add_key('contextid', XMLDB_KEY_FOREIGN, ['contextid'], 'context', ['id']);
|
||||
$table->add_index('component-itemtype-contextid-itemid', XMLDB_INDEX_UNIQUE, ['component',
|
||||
'itemtype',
|
||||
'itemid',
|
||||
'contextid']);
|
||||
if (!$dbman->table_exists($table)) {
|
||||
$dbman->create_table($table);
|
||||
// Alter 'message_conversations' table to support groups.
|
||||
$table = new xmldb_table('message_conversations');
|
||||
$field = new xmldb_field('component', XMLDB_TYPE_CHAR, '100', null, null, null, null, 'convhash');
|
||||
if (!$dbman->field_exists($table, $field)) {
|
||||
$dbman->add_field($table, $field);
|
||||
}
|
||||
|
||||
$field = new xmldb_field('itemtype', XMLDB_TYPE_CHAR, '100', null, null, null, null, 'component');
|
||||
if (!$dbman->field_exists($table, $field)) {
|
||||
$dbman->add_field($table, $field);
|
||||
}
|
||||
|
||||
$field = new xmldb_field('itemid', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'itemtype');
|
||||
if (!$dbman->field_exists($table, $field)) {
|
||||
$dbman->add_field($table, $field);
|
||||
}
|
||||
|
||||
$field = new xmldb_field('contextid', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'itemid');
|
||||
if (!$dbman->field_exists($table, $field)) {
|
||||
$dbman->add_field($table, $field);
|
||||
}
|
||||
|
||||
$field = new xmldb_field('enabled', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0, 'contextid');
|
||||
if (!$dbman->field_exists($table, $field)) {
|
||||
$dbman->add_field($table, $field);
|
||||
}
|
||||
|
||||
$field = new xmldb_field('timemodified', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'enabled');
|
||||
if (!$dbman->field_exists($table, $field)) {
|
||||
$dbman->add_field($table, $field);
|
||||
}
|
||||
|
||||
// Add key.
|
||||
$key = new xmldb_key('contextid', XMLDB_KEY_FOREIGN, ['contextid'], 'context', ['id']);
|
||||
$dbman->add_key($table, $key);
|
||||
|
||||
// Add index.
|
||||
$index = new xmldb_index('component-itemtype-contextid-itemid', XMLDB_INDEX_NOTUNIQUE, ['component', 'itemtype',
|
||||
'itemid', 'contextid']);
|
||||
if (!$dbman->index_exists($table, $index)) {
|
||||
$dbman->add_index($table, $index);
|
||||
}
|
||||
|
||||
upgrade_main_savepoint(true, 2018102300.02);
|
||||
|
@ -76,12 +76,12 @@ class api {
|
||||
/**
|
||||
* The state for an enabled conversation area.
|
||||
*/
|
||||
const MESSAGE_CONVERSATION_AREA_ENABLED = 1;
|
||||
const MESSAGE_CONVERSATION_ENABLED = 1;
|
||||
|
||||
/**
|
||||
* The state for a disabled conversation area.
|
||||
*/
|
||||
const MESSAGE_CONVERSATION_AREA_DISABLED = 0;
|
||||
const MESSAGE_CONVERSATION_DISABLED = 0;
|
||||
|
||||
/**
|
||||
* Handles searching for messages in the message area.
|
||||
@ -1469,10 +1469,18 @@ class api {
|
||||
*
|
||||
* @param int $type The type of conversation
|
||||
* @param int[] $userids The array of users to add to the conversation
|
||||
* @param string $name The name of the conversation
|
||||
* @param string|null $name The name of the conversation
|
||||
* @param int $enabled Determines if the conversation is created enabled or disabled
|
||||
* @param string|null $component Defines the Moodle component which the conversation belongs to, if any
|
||||
* @param string|null $itemtype Defines the type of the component
|
||||
* @param int|null $itemid The id of the component
|
||||
* @param int|null $contextid The id of the context
|
||||
* @return \stdClass
|
||||
*/
|
||||
public static function create_conversation(int $type, array $userids, string $name = null) {
|
||||
public static function create_conversation(int $type, array $userids, string $name = null,
|
||||
int $enabled = self::MESSAGE_CONVERSATION_ENABLED, string $component = null,
|
||||
string $itemtype = null, int $itemid = null, int $contextid = null) {
|
||||
|
||||
global $DB;
|
||||
|
||||
// Sanity check.
|
||||
@ -1489,7 +1497,13 @@ class api {
|
||||
if ($type == self::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL) {
|
||||
$conversation->convhash = helper::get_conversation_hash($userids);
|
||||
}
|
||||
$conversation->component = $component;
|
||||
$conversation->itemtype = $itemtype;
|
||||
$conversation->itemid = $itemid;
|
||||
$conversation->contextid = $contextid;
|
||||
$conversation->enabled = $enabled;
|
||||
$conversation->timecreated = time();
|
||||
$conversation->timemodified = $conversation->timecreated;
|
||||
$conversation->id = $DB->insert_record('message_conversations', $conversation);
|
||||
|
||||
// Add users to this conversation.
|
||||
@ -1986,39 +2000,6 @@ class api {
|
||||
return $DB->count_records('message_conversation_members', ['conversationid' => $convid]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message conversation area.
|
||||
*
|
||||
* @param string $component Defines the Moodle component which the area was added to
|
||||
* @param string $itemtype Defines the type of the component
|
||||
* @param int $itemid The id of the component
|
||||
* @param int $contextid The id of the context
|
||||
* @param string $name The main name of the area
|
||||
* @param int $enabled Enable or disable the conversation area
|
||||
* @return \stdClass
|
||||
*/
|
||||
public static function create_conversation_area(string $component, string $itemtype, int $itemid, int $contextid, string $name,
|
||||
int $enabled = self::MESSAGE_CONVERSATION_AREA_DISABLED) {
|
||||
global $DB;
|
||||
|
||||
// Create a conversation.
|
||||
$conversation = self::create_conversation(self::MESSAGE_CONVERSATION_TYPE_GROUP, array(), $name);
|
||||
|
||||
// Create a conversation area.
|
||||
$conversationarea = new \stdClass;
|
||||
$conversationarea->conversationid = $conversation->id;
|
||||
$conversationarea->component = $component;
|
||||
$conversationarea->itemtype = $itemtype;
|
||||
$conversationarea->itemid = $itemid;
|
||||
$conversationarea->contextid = $contextid;
|
||||
$conversationarea->enabled = $enabled;
|
||||
$conversationarea->timecreated = time();
|
||||
$conversationarea->timemodified = $conversationarea->timecreated;
|
||||
$conversationarea->id = $DB->insert_record('message_conversation_area', $conversationarea);
|
||||
|
||||
return $conversationarea;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether or not a conversation area is enabled.
|
||||
*
|
||||
@ -2031,30 +2012,30 @@ class api {
|
||||
public static function is_conversation_area_enabled(string $component, string $itemtype, int $itemid, int $contextid) : bool {
|
||||
global $DB;
|
||||
|
||||
return $DB->record_exists('message_conversation_area',
|
||||
return $DB->record_exists('message_conversations',
|
||||
[
|
||||
'itemid' => $itemid,
|
||||
'contextid' => $contextid,
|
||||
'component' => $component,
|
||||
'itemtype' => $itemtype,
|
||||
'enabled' => self::MESSAGE_CONVERSATION_AREA_ENABLED
|
||||
'enabled' => self::MESSAGE_CONVERSATION_ENABLED
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get conversation area.
|
||||
* Get conversation by area.
|
||||
*
|
||||
* @param string $component Defines the Moodle component which the area was added to.
|
||||
* @param string $itemtype Defines the type of the component.
|
||||
* @param int $itemid The id of the component.
|
||||
* @param int $contextid The id of the context.
|
||||
* @return object message_conversation_area.
|
||||
* @param int $itemid The id of the component.
|
||||
* @param int $contextid The id of the context.
|
||||
* @return \stdClass
|
||||
*/
|
||||
public static function get_conversation_area(string $component, string $itemtype, int $itemid, int $contextid) {
|
||||
public static function get_conversation_by_area(string $component, string $itemtype, int $itemid, int $contextid) {
|
||||
global $DB;
|
||||
|
||||
return $DB->get_record('message_conversation_area',
|
||||
return $DB->get_record('message_conversations',
|
||||
[
|
||||
'itemid' => $itemid,
|
||||
'contextid' => $contextid,
|
||||
@ -2065,41 +2046,41 @@ class api {
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable a conversation area.
|
||||
* Enable a conversation.
|
||||
*
|
||||
* @param int $conversationareaid The id of a conversation area.
|
||||
* @param int $conversationid The id of the conversation.
|
||||
* @return void
|
||||
*/
|
||||
public static function enable_conversation_area(int $conversationareaid) {
|
||||
public static function enable_conversation(int $conversationid) {
|
||||
global $DB;
|
||||
|
||||
$conversationarea = new \stdClass();
|
||||
$conversationarea->id = $conversationareaid;
|
||||
$conversationarea->enabled = self::MESSAGE_CONVERSATION_AREA_ENABLED;
|
||||
$conversationarea->timemodified = time();
|
||||
$DB->update_record('message_conversation_area', $conversationarea);
|
||||
$conversation = new \stdClass();
|
||||
$conversation->id = $conversationid;
|
||||
$conversation->enabled = self::MESSAGE_CONVERSATION_ENABLED;
|
||||
$conversation->timemodified = time();
|
||||
$DB->update_record('message_conversations', $conversation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable a conversation area.
|
||||
* Disable a conversation.
|
||||
*
|
||||
* @param int $conversationareaid The id of a conversation area.
|
||||
* @param int $conversationid The id of the conversation.
|
||||
* @return void
|
||||
*/
|
||||
public static function disable_conversation_area(int $conversationareaid) {
|
||||
public static function disable_conversation(int $conversationid) {
|
||||
global $DB;
|
||||
|
||||
$conversationarea = new \stdClass();
|
||||
$conversationarea->id = $conversationareaid;
|
||||
$conversationarea->enabled = self::MESSAGE_CONVERSATION_AREA_DISABLED;
|
||||
$conversationarea->timemodified = time();
|
||||
$DB->update_record('message_conversation_area', $conversationarea);
|
||||
$conversation = new \stdClass();
|
||||
$conversation->id = $conversationid;
|
||||
$conversation->enabled = self::MESSAGE_CONVERSATION_DISABLED;
|
||||
$conversation->timemodified = time();
|
||||
$DB->update_record('message_conversations', $conversation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the name of a conversation.
|
||||
*
|
||||
* @param int $conversationid The id of a conversation.
|
||||
* @param int $conversationid The id of a conversation.
|
||||
* @param string $name The main name of the area
|
||||
* @return void
|
||||
*/
|
||||
|
@ -3264,91 +3264,113 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Test create message conversation area.
|
||||
* Test create message conversation with area.
|
||||
*/
|
||||
public function test_create_conversation_area() {
|
||||
$this->resetAfterTest();
|
||||
public function test_create_conversation_with_area() {
|
||||
$contextid = 111;
|
||||
$itemid = 222;
|
||||
$name = 'Name of conversation';
|
||||
$conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name);
|
||||
$conversation = \core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP,
|
||||
[],
|
||||
$name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_DISABLED,
|
||||
'core_group',
|
||||
'groups',
|
||||
$itemid,
|
||||
$contextid
|
||||
);
|
||||
|
||||
$this->assertEquals($itemid, $conversationarea->itemid);
|
||||
$this->assertEquals($contextid, $conversationarea->contextid);
|
||||
$this->assertEquals('core_group', $conversationarea->component);
|
||||
$this->assertEquals('groups', $conversationarea->itemtype);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_AREA_DISABLED, $conversationarea->enabled);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_DISABLED, $conversation->enabled);
|
||||
$this->assertEquals('core_group', $conversation->component);
|
||||
$this->assertEquals('groups', $conversation->itemtype);
|
||||
$this->assertEquals($itemid, $conversation->itemid);
|
||||
$this->assertEquals($contextid, $conversation->contextid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get_conversation_area.
|
||||
* Test get_conversation_by_area.
|
||||
*/
|
||||
public function test_get_conversation_area() {
|
||||
public function test_get_conversation_by_area() {
|
||||
$contextid = 111;
|
||||
$itemid = 222;
|
||||
$name = 'Name of conversation';
|
||||
\core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED);
|
||||
$conversationarea = \core_message\api::get_conversation_area('core_group', 'groups', $itemid, $contextid);
|
||||
$createconversation = \core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP,
|
||||
[],
|
||||
$name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_DISABLED,
|
||||
'core_group',
|
||||
'groups',
|
||||
$itemid,
|
||||
$contextid
|
||||
);
|
||||
$conversation = \core_message\api::get_conversation_by_area('core_group', 'groups', $itemid, $contextid);
|
||||
|
||||
$this->assertEquals($itemid, $conversationarea->itemid);
|
||||
$this->assertEquals($contextid, $conversationarea->contextid);
|
||||
$this->assertEquals('core_group', $conversationarea->component);
|
||||
$this->assertEquals('groups', $conversationarea->itemtype);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED, $conversationarea->enabled);
|
||||
$this->assertEquals($createconversation->id, $conversation->id);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_DISABLED, $conversation->enabled);
|
||||
$this->assertEquals('core_group', $conversation->component);
|
||||
$this->assertEquals('groups', $conversation->itemtype);
|
||||
$this->assertEquals($itemid, $conversation->itemid);
|
||||
$this->assertEquals($contextid, $conversation->contextid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test enable_conversation_area.
|
||||
* Test enable_conversation.
|
||||
*/
|
||||
public function test_enable_conversation_area() {
|
||||
public function test_enable_conversation() {
|
||||
global $DB;
|
||||
|
||||
$contextid = 111;
|
||||
$itemid = 222;
|
||||
$name = 'Name of conversation';
|
||||
|
||||
$conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name);
|
||||
\core_message\api::enable_conversation_area($conversationarea->id);
|
||||
$conversationareaenabled = $DB->get_field('message_conversation_area', 'enabled', ['id' => $conversationarea->id]);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED, $conversationareaenabled);
|
||||
$conversation = \core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP,
|
||||
[],
|
||||
$name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_DISABLED
|
||||
);
|
||||
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_DISABLED, $conversation->enabled);
|
||||
\core_message\api::enable_conversation($conversation->id);
|
||||
$conversationenabled = $DB->get_field('message_conversations', 'enabled', ['id' => $conversation->id]);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_ENABLED, $conversationenabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test disable_conversation_area.
|
||||
* Test disable_conversation.
|
||||
*/
|
||||
public function test_disable_conversation_area() {
|
||||
public function test_disable_conversation() {
|
||||
global $DB;
|
||||
|
||||
$contextid = 111;
|
||||
$itemid = 222;
|
||||
$name = 'Name of conversation';
|
||||
|
||||
$conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_AREA_ENABLED, $conversationarea->enabled);
|
||||
\core_message\api::disable_conversation_area($conversationarea->id);
|
||||
$conversationareaenabled = $DB->get_field('message_conversation_area', 'enabled', ['id' => $conversationarea->id]);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_AREA_DISABLED, $conversationareaenabled);
|
||||
$conversation = \core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP,
|
||||
[],
|
||||
$name,
|
||||
\core_message\api::MESSAGE_CONVERSATION_ENABLED
|
||||
);
|
||||
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_ENABLED, $conversation->enabled);
|
||||
\core_message\api::disable_conversation($conversation->id);
|
||||
$conversationenabled = $DB->get_field('message_conversations', 'enabled', ['id' => $conversation->id]);
|
||||
$this->assertEquals(\core_message\api::MESSAGE_CONVERSATION_DISABLED, $conversationenabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test update_conversation_name.
|
||||
*/
|
||||
public function test_update_conversation_name() {
|
||||
global $DB;
|
||||
|
||||
$contextid = 111;
|
||||
$itemid = 222;
|
||||
$name = 'Name of conversation';
|
||||
|
||||
$conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name);
|
||||
$conversation = \core_message\api::create_conversation(\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP, []);
|
||||
|
||||
$newname = 'New name of conversation';
|
||||
\core_message\api::update_conversation_name($conversationarea->conversationid, $newname);
|
||||
\core_message\api::update_conversation_name($conversation->id, $newname);
|
||||
|
||||
$this->assertEquals(
|
||||
$newname,
|
||||
$DB->get_field('message_conversations', 'name', ['id' => $conversationarea->conversationid])
|
||||
$DB->get_field('message_conversations', 'name', ['id' => $conversation->id])
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user