MDL-63850 core_message: moved contact request logic to helper
This commit is contained in:
+1
-19
@@ -2487,25 +2487,7 @@ class api {
|
||||
if ($members = $DB->get_records('message_conversation_members', ['conversationid' => $conversationid],
|
||||
'timecreated ASC, id ASC', 'userid', $limitfrom, $limitnum)) {
|
||||
$userids = array_keys($members);
|
||||
$members = helper::get_member_info($userid, $userids);
|
||||
|
||||
// Check if we want to include contact requests as well.
|
||||
if ($includecontactrequests) {
|
||||
list($useridsql, $usersparams) = $DB->get_in_or_equal($userids);
|
||||
|
||||
$wheresql = "(userid $useridsql OR requesteduserid $useridsql)";
|
||||
if ($contactrequests = $DB->get_records_select('message_contact_requests', $wheresql,
|
||||
array_merge($usersparams, $usersparams), 'timecreated ASC, id ASC')) {
|
||||
foreach ($contactrequests as $contactrequest) {
|
||||
if (isset($members[$contactrequest->userid])) {
|
||||
$members[$contactrequest->userid]->contactrequests[] = $contactrequest;
|
||||
}
|
||||
if (isset($members[$contactrequest->requesteduserid])) {
|
||||
$members[$contactrequest->requesteduserid]->contactrequests[] = $contactrequest;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$members = helper::get_member_info($userid, $userids, $includecontactrequests);
|
||||
|
||||
return $members;
|
||||
}
|
||||
|
||||
@@ -482,11 +482,12 @@ class helper {
|
||||
*
|
||||
* @param int $referenceuserid the id of the user which check contact and blocked status.
|
||||
* @param array $userids
|
||||
* @param bool $includecontactrequests Do we want to include contact requests with this data?
|
||||
* @return array the array of objects containing member info, indexed by userid.
|
||||
* @throws \coding_exception
|
||||
* @throws \dml_exception
|
||||
*/
|
||||
public static function get_member_info(int $referenceuserid, array $userids) : array {
|
||||
public static function get_member_info(int $referenceuserid, array $userids, bool $includecontactrequests = false) : array {
|
||||
global $DB, $PAGE;
|
||||
|
||||
// Prevent exception being thrown when array is empty.
|
||||
@@ -532,6 +533,25 @@ class helper {
|
||||
|
||||
$members[$data->id] = $data;
|
||||
}
|
||||
|
||||
// Check if we want to include contact requests as well.
|
||||
if (!empty($members) && $includecontactrequests) {
|
||||
list($useridsql, $usersparams) = $DB->get_in_or_equal($userids);
|
||||
|
||||
$wheresql = "(userid $useridsql OR requesteduserid $useridsql)";
|
||||
if ($contactrequests = $DB->get_records_select('message_contact_requests', $wheresql,
|
||||
array_merge($usersparams, $usersparams), 'timecreated ASC, id ASC')) {
|
||||
foreach ($contactrequests as $contactrequest) {
|
||||
if (isset($members[$contactrequest->userid])) {
|
||||
$members[$contactrequest->userid]->contactrequests[] = $contactrequest;
|
||||
}
|
||||
if (isset($members[$contactrequest->requesteduserid])) {
|
||||
$members[$contactrequest->requesteduserid]->contactrequests[] = $contactrequest;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $members;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user