Add method to get all directory metadatas in database manager
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 10 Mar 2023 00:06:18 +0000 (01:06 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:24 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift

index f17e693bdec986f1b3349c159ee3eb218322ea24..e2ad94279291d08692fb8bb4a658ff72f2626b66 100644 (file)
@@ -194,7 +194,7 @@ class NextcloudFilesDatabaseManager : NSObject {
 
         do {
             try database.write {
-                let existingMetadatas = ncDatabase().objects(NextcloudItemMetadataTable.self).filter("account == %@ AND serverUrl == %@ AND status == %@", account, serverUrl, NextcloudItemMetadataTable.Status.normal.rawValue)
+                let existingMetadatas = database.objects(NextcloudItemMetadataTable.self).filter("account == %@ AND serverUrl == %@ AND status == %@", account, serverUrl, NextcloudItemMetadataTable.Status.normal.rawValue)
 
                 let deletedMetadatas = processItemMetadatasToDelete(databaseToWriteTo: database,
                                                                     existingMetadatas: existingMetadatas,
@@ -311,6 +311,12 @@ class NextcloudFilesDatabaseManager : NSObject {
         return directoryMetadata(account: itemMetadata.account, serverUrl: itemMetadata.serverUrl)
     }
 
+    func directoryMetadatas(account: String) -> [NextcloudDirectoryMetadataTable] {
+        let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@", account)
+        let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true)
+        return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) })
+    }
+
     func directoryMetadatas(account: String, parentDirectoryServerUrl: String) -> [NextcloudDirectoryMetadataTable] {
         let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND parentDirectoryServerUrl == %@", account, parentDirectoryServerUrl)
         let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true)