Create sortedDirectoryMetadatas convenience method in database manager
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 10 Mar 2023 12:34:44 +0000 (13:34 +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 adef544f22595f05f80dee180659ab5494831853..bc1ab1e80246b2af8010c8a45d2c067cf5a3d5cf 100644 (file)
@@ -312,27 +312,28 @@ class NextcloudFilesDatabaseManager : NSObject {
         return nil
     }
 
-    func childDirectoriesForDirectory(_ directoryMetadata: NextcloudDirectoryMetadataTable) -> [NextcloudDirectoryMetadataTable] {
-        let database = ncDatabase()
-        let metadatas = database.objects(NextcloudDirectoryMetadataTable.self).filter("serverUrl BEGINSWITH %@ AND ocId != %@", directoryMetadata.serverUrl, directoryMetadata.account)
+    private func sortedDirectoryMetadatas(_ metadatas: Results<NextcloudDirectoryMetadataTable>) -> [NextcloudDirectoryMetadataTable] {
         let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true)
         return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) })
     }
 
+    func childDirectoriesForDirectory(_ directoryMetadata: NextcloudDirectoryMetadataTable) -> [NextcloudDirectoryMetadataTable] {
+        let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("serverUrl BEGINSWITH %@ AND ocId != %@", directoryMetadata.serverUrl, directoryMetadata.account)
+        return sortedDirectoryMetadatas(metadatas)
+    }
+
     func parentDirectoryMetadataForItem(_ itemMetadata: NextcloudItemMetadataTable) -> NextcloudDirectoryMetadataTable? {
         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) })
+        return sortedDirectoryMetadatas(metadatas)
     }
 
     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)
-        return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) })
+        return sortedDirectoryMetadatas(metadatas)
     }
 
     private func processDirectoryMetadatasToDelete(databaseToWriteTo: Realm,