Create sortedDirectoryMetadatas convenience method in database manager

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-03-10 13:34:44 +01:00
parent 64e32b48eb
commit 24d6c5071c
No known key found for this signature in database
GPG key ID: C839200C384636B0

View file

@ -312,27 +312,28 @@ class NextcloudFilesDatabaseManager : NSObject {
return nil return nil
} }
func childDirectoriesForDirectory(_ directoryMetadata: NextcloudDirectoryMetadataTable) -> [NextcloudDirectoryMetadataTable] { private func sortedDirectoryMetadatas(_ metadatas: Results<NextcloudDirectoryMetadataTable>) -> [NextcloudDirectoryMetadataTable] {
let database = ncDatabase()
let metadatas = database.objects(NextcloudDirectoryMetadataTable.self).filter("serverUrl BEGINSWITH %@ AND ocId != %@", directoryMetadata.serverUrl, directoryMetadata.account)
let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true) let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true)
return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) }) 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? { func parentDirectoryMetadataForItem(_ itemMetadata: NextcloudItemMetadataTable) -> NextcloudDirectoryMetadataTable? {
return directoryMetadata(account: itemMetadata.account, serverUrl: itemMetadata.serverUrl) return directoryMetadata(account: itemMetadata.account, serverUrl: itemMetadata.serverUrl)
} }
func directoryMetadatas(account: String) -> [NextcloudDirectoryMetadataTable] { func directoryMetadatas(account: String) -> [NextcloudDirectoryMetadataTable] {
let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@", account) let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@", account)
let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true) return sortedDirectoryMetadatas(metadatas)
return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) })
} }
func directoryMetadatas(account: String, parentDirectoryServerUrl: String) -> [NextcloudDirectoryMetadataTable] { func directoryMetadatas(account: String, parentDirectoryServerUrl: String) -> [NextcloudDirectoryMetadataTable] {
let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND parentDirectoryServerUrl == %@", account, parentDirectoryServerUrl) let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND parentDirectoryServerUrl == %@", account, parentDirectoryServerUrl)
let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true) return sortedDirectoryMetadatas(metadatas)
return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) })
} }
private func processDirectoryMetadatasToDelete(databaseToWriteTo: Realm, private func processDirectoryMetadatasToDelete(databaseToWriteTo: Realm,