Add convenience parentItemIdentifierFromMetadata convenience function to NextcloudFil...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 12 Jan 2023 17:34:38 +0000 (18:34 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:11 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift

index 0ec34229249bb4f1944652dc52759bd1ee25a02c..fd64200c92f479ede4336f39b11984d5685d4319 100644 (file)
@@ -88,3 +88,17 @@ func createFileOrDirectoryLocally(metadata: NextcloudFileMetadataTable) {
         print("Could not create NC file or directory locally, received error: %@", error)
     }
 }
+
+func parentItemIdentifierFromMetadata(_ metadata: NextcloudFileMetadataTable) -> NSFileProviderItemIdentifier? {
+    let homeServerFilesUrl = metadata.urlBase + "/remote.php/dav/files/" + metadata.userId
+    let ncDatabase = NextcloudFilesDatabaseManager.shared
+
+    guard let itemParentDirectory = ncDatabase.directoryMetadataForFile(metadata) else { return nil }
+    if itemParentDirectory.serverUrl == homeServerFilesUrl {
+        return .rootContainer
+    } else if let parentDirectoryMetadata = ncDatabase.fileMetadataFromOcId(itemParentDirectory.ocId) {
+        return NSFileProviderItemIdentifier(parentDirectoryMetadata.ocId)
+    }
+
+    return nil
+}