Add sharee fetcher method to shareesuggestionsdatasource
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 2 Apr 2024 10:17:35 +0000 (18:17 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 17 Apr 2024 08:39:03 +0000 (16:39 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Extensions/Logger+Extensions.swift
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/ShareeSuggestionsDataSource.swift

index 54e3e599a1e901e045287b485c7a42be92728028..960171034da09beca320cb942ae9090428eaa6e8 100644 (file)
@@ -13,6 +13,7 @@ extension Logger {
     static let actionViewController = Logger(subsystem: subsystem, category: "actionViewController")
     static let shareCapabilities = Logger(subsystem: subsystem, category: "shareCapabilities")
     static let shareController = Logger(subsystem: subsystem, category: "shareController")
+    static let shareeDataSource = Logger(subsystem: subsystem, category: "shareeDataSource")
     static let sharesDataSource = Logger(subsystem: subsystem, category: "sharesDataSource")
     static let shareOptionsView = Logger(subsystem: subsystem, category: "shareOptionsView")
     static let shareViewController = Logger(subsystem: subsystem, category: "shareViewController")
index f31db0ee192ee595dcc84beb47a59f07a2a64bbb..17a7140b57de931136b20d5faa12adccd8b559db 100644 (file)
@@ -18,4 +18,23 @@ class ShareeSuggestionsDataSource: SuggestionsDataSource {
     init(kit: NextcloudKit) {
         self.kit = kit
     }
+
+    private func fetchSharees(search: String) async -> [NKSharee] {
+        return await withCheckedContinuation { continuation in
+            kit.searchSharees(
+                search: inputString,
+                page: 1,
+                perPage: 20,
+                completion: { account, sharees, data, error in
+                    defer { continuation.resume(returning: sharees ?? []) }
+                    guard error == .success else {
+                        Logger.shareeDataSource.error(
+                            "Error fetching sharees: \(error.description, privacy: .public)"
+                        )
+                        return
+                    }
+                }
+            )
+        }
+    }
 }