コード例 #1
0
 public function updateAttachmentMessageId($attachmentId, $newMessageId)
 {
     if (empty($attachmentId) or !is_numeric($attachmentId)) {
         throw new InvalidIntegerArgumentException("\$attachmentId have to be non zero integer.");
     }
     if (empty($newMessageId) or !is_numeric($newMessageId)) {
         throw new InvalidIntegerArgumentException("\$newMessageId have to be non zero integer.");
     }
     $convMgr = Reg::get(ConfigManager::getConfig("Messaging", "Conversations")->Objects->ConversationManager);
     $filter = new ConversationMessagesFilter();
     $filter->setId($newMessageId);
     $message = $convMgr->getConversationMessage($filter);
     $qb = new QueryBuilder();
     $qb->update(Tbl::get('TBL_CONVERSATION_ATTACHEMENTS'))->set(new Field('message_id'), $message->id)->where($qb->expr()->equal(new Field('id'), $attachmentId));
     MySqlDbManager::getDbObject()->startTransaction();
     try {
         $convMgr->setMessageHasAttachment($message);
         $affected = $this->query->exec($qb->getSQL())->affected();
         if (!MySqlDbManager::getDbObject()->commit()) {
             MySqlDbManager::getDbObject()->rollBack();
         }
     } catch (Exception $e) {
         MySqlDbManager::getDbObject()->rollBack();
         throw $e;
     }
 }
コード例 #2
0
 public function wipeConversationMessage($conversationMessageId)
 {
     if (empty($conversationMessageId) or !is_numeric($conversationMessageId)) {
         throw new InvalidIntegerArgumentException("\$conversationMessageId have to be non zero integer.");
     }
     // Get message
     $filter = new ConversationMessagesFilter();
     $filter->setId($conversationMessageId);
     $message = $this->getConversationMessage($filter, true);
     $qb = new QueryBuilder();
     $qb->delete(Tbl::get('TBL_CONVERSATION_MESSAGES'))->where($qb->expr()->equal(new Field('id'), $message->id));
     $affected = $this->query->exec($qb->getSQL())->affected();
     $this->correctConversationReadStatus($message->uuid, $message->senderId);
     $this->correctConversationHasAttachment($message->uuid, $message->senderId);
     $this->correctConversationReadStatus($message->uuid, $message->receiverId);
     $this->correctConversationHasAttachment($message->uuid, $message->receiverId);
     return $affected;
 }
コード例 #3
0
 public function markConversationMessageAsRead($conversationMessageId)
 {
     if (empty($conversationMessageId) or !is_numeric($conversationMessageId)) {
         throw new InvalidIntegerArgumentException("\$conversationMessageId have to be non zero integer.");
     }
     // Get message
     $filter = new ConversationMessagesFilter();
     $filter->setId($conversationMessageId);
     $message = $this->getConversationMessage($filter, true);
     // Change read status
     $qb = new QueryBuilder();
     $qb->update(Tbl::get('TBL_CONVERSATION_MESSAGES'))->set(new Field('read'), self::STATUS_READ_READ)->where($qb->expr()->equal(new Field('id'), $message->id));
     $this->query->exec($qb->getSQL())->affected();
     $this->correctConversationReadStatus($message->uuid, $message->receiverId);
 }