From ac792237644f5dd83183cf140093c4e61668a02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 29 Jul 2022 11:13:45 -0400 Subject: [PATCH] ConversationRepository: consume vcard info Change-Id: I7c2e6b95fad95049565f9298e2690c3ef8b0b5d1 --- src/jamidht/conversation_module.cpp | 5 ++--- src/jamidht/conversationrepository.cpp | 10 +++++----- src/jamidht/conversationrepository.h | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp index 1c732e2609..bf347d10c5 100644 --- a/src/jamidht/conversation_module.cpp +++ b/src/jamidht/conversation_module.cpp @@ -1019,9 +1019,8 @@ ConversationModule::onTrustRequest(const std::string& uri, req.from = uri; req.conversationId = conversationId; req.received = std::time(nullptr); - auto details = vCard::utils::toMap( - std::string_view(reinterpret_cast<const char*>(payload.data()), payload.size())); - req.metadatas = ConversationRepository::infosFromVCard(details); + req.metadatas = ConversationRepository::infosFromVCard(vCard::utils::toMap( + std::string_view(reinterpret_cast<const char*>(payload.data()), payload.size()))); auto reqMap = req.toMap(); pimpl_->addConversationRequest(conversationId, std::move(req)); emitSignal<DRing::ConversationSignal::ConversationRequestReceived>(pimpl_->accountId_, diff --git a/src/jamidht/conversationrepository.cpp b/src/jamidht/conversationrepository.cpp index d73162d2e8..ae91f11f32 100644 --- a/src/jamidht/conversationrepository.cpp +++ b/src/jamidht/conversationrepository.cpp @@ -3536,16 +3536,16 @@ ConversationRepository::infos() const } std::map<std::string, std::string> -ConversationRepository::infosFromVCard(const std::map<std::string, std::string>& details) +ConversationRepository::infosFromVCard(std::map<std::string, std::string>&& details) { std::map<std::string, std::string> result; - for (const auto& [k, v] : details) { + for (auto&& [k, v] : details) { if (k == vCard::Property::FORMATTED_NAME) { - result["title"] = v; + result["title"] = std::move(v); } else if (k == vCard::Property::DESCRIPTION) { - result["description"] = v; + result["description"] = std::move(v); } else if (k.find(vCard::Property::PHOTO) == 0) { - result["avatar"] = v; + result["avatar"] = std::move(v); } } return result; diff --git a/src/jamidht/conversationrepository.h b/src/jamidht/conversationrepository.h index 5c193366d7..ec1420d215 100644 --- a/src/jamidht/conversationrepository.h +++ b/src/jamidht/conversationrepository.h @@ -350,7 +350,7 @@ public: */ std::map<std::string, std::string> infos() const; static std::map<std::string, std::string> infosFromVCard( - const std::map<std::string, std::string>& details); + std::map<std::string, std::string>&& details); /** * Retrieve account's URI from deviceId -- GitLab