Can get the messages of a single conversation

This commit is contained in:
Pierre 2017-12-16 14:02:39 +01:00
parent d8de0866ae
commit 3960cbde6c
2 changed files with 40 additions and 1 deletions

View File

@ -354,4 +354,43 @@ class conversationsController{
//Return result //Return result
return $conversationsMessages; return $conversationsMessages;
} }
/**
* Refresh the messages of a specific conversation
*
* @url POST /conversations/refresh_single
*/
public function refresh_single(){
user_login_required();
//Get the ID of the conversation to refresh
if(!isset($_POST['conversationID']))
Rest_fatal_error(400, "Please specify a conversation ID !");
//Get the last message ID downloaded by the client
if(!isset($_POST['last_message_id']))
Rest_fatal_error(400, "Please specify the ID of the last message you've got!");
$conversationID = toInt($_POST['conversationID']);
$last_message_id = toInt($_POST['last_message_id']);
//Check if the current user can access the conversation
if(!CS::get()->components->conversations->userBelongsTo(userID, $conversationID))
Rest_fatal_error(401, "Specified user doesn't belongs to the conversation number ".$conversationID." !");
//Check if user has already some of the messages of the conversations, or
//If we have to return the list of the last ten messages
if($last_message_id == 0){
$messages =
CS::get()->components->conversations->getLastMessages($conversationID, 10);
}
else {
$messages =
CS::get()->components->conversations->getNewMessages($conversationID, $last_message_id);
}
//Return the messges
return $messages;
}
} }

View File

@ -576,7 +576,7 @@ class conversations {
* @param Integer $numberOfMessages The number of messages to return * @param Integer $numberOfMessages The number of messages to return
* @return Array The messages of the conversation * @return Array The messages of the conversation
*/ */
public function getLastMessages($conversationID, $numberOfMessages) : array { public function getLastMessages(int $conversationID, int $numberOfMessages) : array {
//Define conditions //Define conditions
$conditions = "WHERE ID_".$this->conversationsListTable." = ? ORDER BY ID DESC LIMIT ".($numberOfMessages*1); $conditions = "WHERE ID_".$this->conversationsListTable." = ? ORDER BY ID DESC LIMIT ".($numberOfMessages*1);