Get messages data from the last received message - refs #7338

1.9.x
Angel Fernando Quiroz Campos 11 years ago
parent 8879b58e44
commit 34bc804a07
  1. 42
      main/inc/lib/message.lib.php
  2. 9
      webservices/classes/MessagesWebService.class.php
  3. 4
      webservices/rest.php

@ -1538,4 +1538,46 @@ class MessageManager
return 0;
}
/**
* Get the count of the last received messages for a user
* @param int $userId The user id
* @param int $lastId The id of the last received message
* @return int The count of new messages
*/
public static function getMessagesFromLastReceivedMessage($userId, $lastId)
{
$messagesTable = Database::get_main_table(TABLE_MESSAGE);
$userTable = Database::get_main_table(TABLE_MAIN_USER);
$messages = array();
$sql = "SELECT m.*, u.user_id, u.lastname, u.firstname "
. "FROM $messagesTable as m "
. "INNER JOIN $userTable as u "
. "ON m.user_receiver_id = u.user_id "
. "WHERE u.user_id = $userId "
. "AND m.msg_status = " . MESSAGE_STATUS_UNREAD . " "
. "AND m.id > $lastId";
$result = Database::query($sql);
if ($result !== false) {
while ($row = Database::fetch_assoc($result)) {
$messages = array(
'id' => $row['id'],
'title' => $row['title'],
'sender' => array(
'id' => $row['user_id'],
'lastname' => $row['lastname'],
'firstname' => $row['firstname'],
'completeName' => api_get_person_name($row['firstname'], $row['lastname']),
),
'content' => $row['content']
);
}
}
return $messages;
}
}

@ -126,9 +126,14 @@ class MessagesWebService extends WebService
* @param string $username The username
* @return array the new message list
*/
public function getNewMessages($username)
public function getNewMessages($username, $lastId = 0)
{
return array();
$lastId = intval($lastId);
$userInfo = api_get_user_info_from_username($username);
$userId = intval($userInfo['user_id']);
return MessageManager::getMessagesFromLastReceivedMessage($userId, $lastId);
}
}

@ -58,7 +58,9 @@ switch ($action) {
$webService = new MessagesWebService();
$webService->setApiKey($apiKey);
$messages = $webService->getNewMessages($username);
$lastId = isset($_POST['last']) ? $_POST['last'] : 0;
$messages = $webService->getNewMessages($username, $lastId);
$json = array(
'newMessages' => $messages

Loading…
Cancel
Save