Can delete all the conversations of a user

This commit is contained in:
Pierre 2018-05-09 20:20:13 +02:00
parent a63056fb95
commit 5f68d412d4

View File

@ -643,6 +643,29 @@ class Conversations {
}
/**
* Remove a user from a conversation
*
* @param int $userID The ID of the target user
* @param int $conversationID The ID of the target conversation
* @return bool TRUE for a success / FALSE else
*/
public function removeUserFromConversation(int $userID, int $conversationID) : bool {
//Check if user is the owner of the conversation or not
$owner = $this->userIsModerator($userID, $conversationID);
if($owner){
//Delete the conversation
return $this->delete_conversation($conversationID);
}
else {
//Delete the membership to the conversation
return $this->delete_member($conversationID, $userID);
}
}
/**
* Delete a conversation
*
@ -851,6 +874,30 @@ class Conversations {
return TRUE;
}
/**
* Delete all the conversations of a user
*
* @param int $userID The target user ID
* @return bool TRUE for a success / FALSE else
*/
public function deleteAllUserConversations(int $userID) : bool {
//Get the entire list of conversations of the user
$list = $this->getList($userID);
//Process the list of conversations
foreach($list as $conversation){
//Remove the user from the conversation
if(!$this->removeUserFromConversation($userID, $conversation->get_id()))
return FALSE;
}
//Success
return TRUE;
}
/**
* Get a list of conversation messages based on specified conditions
*