From 9832e80336aaa64bc2ef80d3361bac83bd658275 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Fri, 22 Dec 2023 15:35:11 -0500
Subject: [PATCH] data transfer: return filesystem::path

Change-Id: I9fa3dc2be03856fbd0e647ce6f15d11ccb6881ee
---
 src/data_transfer.cpp                    | 11 +++++------
 src/data_transfer.h                      |  4 ++--
 src/jamidht/transfer_channel_handler.cpp |  6 +++---
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index 3d379f34ba..e540c5eec3 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -369,7 +369,7 @@ TransferManager::info(const std::string& fileId,
 
     auto itI = pimpl_->incomings_.find(fileId);
     auto itW = pimpl_->waitingIds_.find(fileId);
-    path = this->path(fileId);
+    path = this->path(fileId).string();
     if (itI != pimpl_->incomings_.end()) {
         total = itI->second->info().totalSize;
         progress = itI->second->info().bytesProgress;
@@ -478,10 +478,10 @@ TransferManager::onIncomingFileTransfer(const std::string& fileId,
     }
 }
 
-std::string
+std::filesystem::path
 TransferManager::path(const std::string& fileId) const
 {
-    return (pimpl_->conversationDataPath_ / fileId).string();
+    return pimpl_->conversationDataPath_ / fileId;
 }
 
 void
@@ -560,11 +560,10 @@ TransferManager::onIncomingProfile(const std::shared_ptr<dhtnet::ChannelSocket>&
     }
 }
 
-std::string
+std::filesystem::path
 TransferManager::profilePath(const std::string& contactId) const
 {
-    // TODO iOS?
-    return (pimpl_->profilesPath_ / fmt::format("{}.vcf", base64::encode(contactId))).string();
+    return pimpl_->profilesPath_ / fmt::format("{}.vcf", base64::encode(contactId));
 }
 
 std::vector<WaitingRequest>
diff --git a/src/data_transfer.h b/src/data_transfer.h
index 8ba13fee05..133e3289d8 100644
--- a/src/data_transfer.h
+++ b/src/data_transfer.h
@@ -188,7 +188,7 @@ public:
      * Retrieve path of a file
      * @param id
      */
-    std::string path(const std::string& fileId) const;
+    std::filesystem::path path(const std::string& fileId) const;
 
     /**
      * Retrieve waiting files
@@ -202,7 +202,7 @@ public:
      * @param contactId     contact's id
      * @return where profile.vcf is stored
      */
-    std::string profilePath(const std::string& contactId) const;
+    std::filesystem::path profilePath(const std::string& contactId) const;
 
 private:
     std::weak_ptr<TransferManager> weak()
diff --git a/src/jamidht/transfer_channel_handler.cpp b/src/jamidht/transfer_channel_handler.cpp
index 172fd47cfd..add8557426 100644
--- a/src/jamidht/transfer_channel_handler.cpp
+++ b/src/jamidht/transfer_channel_handler.cpp
@@ -164,7 +164,7 @@ TransferChannelHandler::onReady(const std::shared_ptr<dht::crypto::Certificate>&
         return;
     } else if (isContactProfile && fileId.find(".vcf") != std::string::npos) {
         auto path = acc->dataTransfer()->profilePath(fileId.substr(0, fileId.size() - 4));
-        acc->dataTransfer()->transferFile(channel, fileId, "", path);
+        acc->dataTransfer()->transferFile(channel, fileId, "", path.string());
         return;
     } else if (fileId == "profile.vcf") {
         acc->dataTransfer()->onIncomingProfile(channel, sha3Sum);
@@ -178,8 +178,8 @@ TransferChannelHandler::onReady(const std::shared_ptr<dht::crypto::Certificate>&
         return;
     }
     auto interactionId = fileId.substr(0, sep);
-    std::string path = dt->path(fileId);
-    dt->transferFile(channel, fileId, interactionId, path, start, end);
+    auto path = dt->path(fileId);
+    dt->transferFile(channel, fileId, interactionId, path.string(), start, end);
 }
 
 } // namespace jami
\ No newline at end of file
-- 
GitLab