From 467ec757b3a4f4a418a6267ad2738d1ce6f92a04 Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Tue, 1 May 2018 17:08:17 -0400
Subject: [PATCH] convsersationmodel: add getConversation

Change-Id: If21cc0585152def69a3dd8be73fef01f834505b3
Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
---
 src/api/conversationmodel.h |  6 ++++++
 src/conversationmodel.cpp   | 13 +++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/src/api/conversationmodel.h b/src/api/conversationmodel.h
index fb3bfe27..b49b2b7b 100644
--- a/src/api/conversationmodel.h
+++ b/src/api/conversationmodel.h
@@ -79,6 +79,12 @@ public:
      * @return conversations filtered
      */
     const ConversationQueue& getFilteredConversations(const profile::Type& filter = profile::Type::INVALID, bool forceUpdate = false, const bool includeBanned = false) const;
+    /**
+     * Get a conversation copy
+     * @param uid of the conversation
+     * @return a copy of the conversation
+     */
+    const conversation::Info getConversation(const std::string& uid) const;
     /**
      * Get the conversation at row in the filtered conversations
      * @param  row
diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp
index 92f05029..c0cee725 100644
--- a/src/conversationmodel.cpp
+++ b/src/conversationmodel.cpp
@@ -346,6 +346,19 @@ ConversationModel::getFilteredConversations(const profile::Type& filter, bool fo
     return pimpl_->customFilteredConversations;
 }
 
+const conversation::Info
+ConversationModel::getConversation(const std::string& uid) const
+{
+    auto row = pimpl_->indexOf(uid);
+    if (row >= pimpl_->conversations.size())
+        return conversation::Info();
+
+    auto conversationInfo = pimpl_->conversations.at(row);
+    conversationInfo.unreadMessages = pimpl_->getNumberOfUnreadMessagesFor(conversationInfo.uid);
+
+    return conversationInfo;
+}
+
 conversation::Info
 ConversationModel::filteredConversation(const unsigned int row) const
 {
-- 
GitLab