From: Lukasz Bardeli Date: Fri, 15 Mar 2019 07:49:48 +0000 (+0000) Subject: Revert "[messaging] Refactor functions used to get email converations from DB" X-Git-Tag: submit/tizen/20190315.163126~2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b811dc6ed4551419d632b7f3c6bfa8d759efcf38;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git Revert "[messaging] Refactor functions used to get email converations from DB" This reverts commit 452dfff3c3eecd63e38295ad0455b961d400d1cb. Reason for revert: Change-Id: I2373c1fc684ff879af16e08ba9f92d26c4ca77da --- diff --git a/src/messaging/conversation_callback_data.cc b/src/messaging/conversation_callback_data.cc index eaebee40..32670505 100644 --- a/src/messaging/conversation_callback_data.cc +++ b/src/messaging/conversation_callback_data.cc @@ -55,11 +55,7 @@ void ConversationCallbackData::addConversation(std::shared_ptr> ConversationCallbackData::getConversations() const { return m_conversations; } diff --git a/src/messaging/conversation_callback_data.h b/src/messaging/conversation_callback_data.h index 21ebeddb..b8203dee 100644 --- a/src/messaging/conversation_callback_data.h +++ b/src/messaging/conversation_callback_data.h @@ -23,7 +23,6 @@ #include "MsgCommon/AttributeFilter.h" #include "MsgCommon/SortMode.h" -#include "message_conversation.h" #include "messaging/callback_user_data.h" #include "messaging_util.h" @@ -46,7 +45,6 @@ class ConversationCallbackData : public CallbackUserData { void setLimit(long limit); void setOffset(long offset); void addConversation(std::shared_ptr msg); - void setConversations(ConversationPtrVector&& conversations); std::vector> getConversations() const; @@ -65,7 +63,7 @@ class ConversationCallbackData : public CallbackUserData { SortModePtr m_sort; long m_limit; long m_offset; - ConversationPtrVector m_conversations; + std::vector> m_conversations; int m_account_id; MessageType m_service_type; }; diff --git a/src/messaging/email_manager.cc b/src/messaging/email_manager.cc index 04b6310a..8c1207bc 100644 --- a/src/messaging/email_manager.cc +++ b/src/messaging/email_manager.cc @@ -1070,6 +1070,24 @@ void EmailManager::findMessages(FindMsgCallbackUserData* callback) { callback = NULL; } +PlatformResult EmailManager::FindConversationsPlatform(ConversationCallbackData* callback) { + ScopeLogger(); + + std::lock_guard lock(m_mutex); + std::vector> conversationsInfo; + PlatformResult ret = + MessagingDatabaseManager::getInstance().findEmailConversations(*callback, &conversationsInfo); + if (ret.IsError()) return ret; + + LoggerD("Found %zu conversations", conversationsInfo.size()); + + for (const auto& conversation : conversationsInfo) { + callback->addConversation(conversation); + } + + return PlatformResult(ErrorCode::NO_ERROR); +} + void EmailManager::findConversations(ConversationCallbackData* callback) { ScopeLogger(); @@ -1078,17 +1096,13 @@ void EmailManager::findConversations(ConversationCallbackData* callback) { return; } - PlatformResult result{ErrorCode::NO_ERROR}; - { - std::lock_guard lock(m_mutex); - result = MessagingDatabaseManager::getInstance().findEmailConversations(callback); - } - - if (result.IsError()) { - LoggerE("%d (%s)", static_cast(result.error_code()), (result.message()).c_str()); - callback->SetError(result); + PlatformResult ret = FindConversationsPlatform(callback); + if (ret.IsError()) { + LoggerE("%d (%s)", static_cast(ret.error_code()), (ret.message()).c_str()); + callback->SetError(ret); } + // Complete task LoggerD("callback: %p error:%d conversations.size()=%zu", callback, callback->IsError(), callback->getConversations().size()); @@ -1098,9 +1112,11 @@ void EmailManager::findConversations(ConversationCallbackData* callback) { LoggerD("Calling success callback"); std::vector response; - for (ConversationPtr& conversation : callback->getConversations()) { - response.push_back(MessagingUtil::conversationToJson(conversation)); - } + auto messages = callback->getConversations(); + std::for_each(messages.begin(), messages.end(), + [&response](std::shared_ptr& conversation) { + response.push_back(MessagingUtil::conversationToJson(conversation)); + }); callback->SetSuccess(picojson::value(response)); } diff --git a/src/messaging/messaging_database_manager.cc b/src/messaging/messaging_database_manager.cc index 4bfd947c..25a6bba1 100644 --- a/src/messaging/messaging_database_manager.cc +++ b/src/messaging/messaging_database_manager.cc @@ -727,24 +727,24 @@ template using SharedPtrVector = std::vector>; template -void filterVector(const AbstractFilterPtr& filter, SharedPtrVector* vec) { +void filterVector(const AbstractFilter& filter, SharedPtrVector* vec) { ScopeLogger(); auto toBeFilteredOut = [&filter](const std::shared_ptr& object_ptr) { - return !filter->isMatching(object_ptr.get()); + return !filter.isMatching(object_ptr.get()); }; vec->erase(std::remove_if(vec->begin(), vec->end(), toBeFilteredOut), vec->end()); } template -void sortVector(const SortModePtr& sortMode, SharedPtrVector* vec) { +void sortVector(const SortMode& sortMode, SharedPtrVector* vec) { ScopeLogger(); - const std::string attribute = sortMode->getAttributeName(); + const std::string attribute = sortMode.getAttributeName(); auto comparator = T::getComparator(attribute); - if (SortModeOrder::ASC == sortMode->getOrder()) { + if (SortModeOrder::ASC == sortMode.getOrder()) { std::sort(vec->begin(), vec->end(), comparator); } else { std::sort(vec->rbegin(), vec->rend(), comparator); @@ -945,8 +945,9 @@ void convertToMessageConversations(const email_mail_data_t* mailData, int mailDa } } +} // namespace -PlatformResult retrieveEmailThreadsFromDatabase( +PlatformResult MessagingDatabaseManager::retrieveEmailThreadsFromDatabase( const ConversationCallbackData& findEmailConversationsData, ConversationPtrVector* conversations) { ScopeLogger(); @@ -995,25 +996,22 @@ PlatformResult retrieveEmailThreadsFromDatabase( return PlatformResult{ErrorCode::NO_ERROR}; } -} // namespace - PlatformResult MessagingDatabaseManager::findEmailConversations( - ConversationCallbackData* findEmailConversationsData) { + const ConversationCallbackData& findEmailConversationsData, + ConversationPtrVector* conversations) { ScopeLogger(); - ConversationPtrVector conversations; - auto result = retrieveEmailThreadsFromDatabase(*findEmailConversationsData, &conversations); + auto result = retrieveEmailThreadsFromDatabase(findEmailConversationsData, conversations); if (result.IsError()) { return result; } - filterVector(findEmailConversationsData->getFilter(), &conversations); + filterVector(*findEmailConversationsData.getFilter(), conversations); - if (findEmailConversationsData->getSortMode()) { - sortVector(findEmailConversationsData->getSortMode(), &conversations); + if (findEmailConversationsData.getSortMode()) { + sortVector(*findEmailConversationsData.getSortMode(), conversations); } - findEmailConversationsData->setConversations(std::move(conversations)); return PlatformResult(ErrorCode::NO_ERROR); } diff --git a/src/messaging/messaging_database_manager.h b/src/messaging/messaging_database_manager.h index f88537e7..5ab55738 100644 --- a/src/messaging/messaging_database_manager.h +++ b/src/messaging/messaging_database_manager.h @@ -85,8 +85,8 @@ class MessagingDatabaseManager { std::pair* result); common::PlatformResult findShortMessageConversations(ConversationCallbackData* callback, std::vector* result); - common::PlatformResult findEmailConversations( - ConversationCallbackData* findEmailConversationsData); + common::PlatformResult findEmailConversations(const ConversationCallbackData& callback, + ConversationPtrVector* conversations); private: MessagingDatabaseManager(); @@ -112,9 +112,13 @@ class MessagingDatabaseManager { common::PlatformResult addFilters(tizen::AbstractFilterPtr filter, tizen::SortModePtr sortMode, long limit, long offset, AttributeInfoMap& attributeMap, MessageType msgType, std::string* result); + common::PlatformResult retrieveEmailThreadsFromDatabase( + const ConversationCallbackData& findEmailConversationsData, + ConversationPtrVector* conversations); AttributeInfoMap m_msg_attr_map; AttributeInfoMap m_email_attr_map; + AttributeInfoMap m_msg_conv_attr_map; };