From 90d5c8f54e5ea829ea4bf63bebcaeabde57462f4 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 14 Feb 2023 13:48:08 +0100 Subject: [PATCH] Add convenience method to update item metadata status Signed-off-by: Claudio Cambra --- .../NextcloudFilesDatabaseManager.swift | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift index 892119b811..75cf7b49c3 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift @@ -187,6 +187,26 @@ class NextcloudFilesDatabaseManager : NSObject { } } + func setStatusForItemMetadata(_ metadata: NextcloudItemMetadataTable, status: NextcloudItemMetadataTable.Status) -> NextcloudItemMetadataTable? { + let database = ncDatabase() + var result: NextcloudItemMetadataTable? + + do { + try database.write { + result = database.objects(NextcloudItemMetadataTable.self).filter("ocId == %@", metadata.ocId).first + result?.status = status.rawValue + } + } catch let error { + NSLog("Could not update status for item metadata with ocID: %@ and filename: %@, received error: %@", metadata.ocId, metadata.fileNameView, error.localizedDescription) + } + + if result != nil { + return NextcloudItemMetadataTable(value: result!) + } + + return nil + } + func directoryMetadata(account: String, serverUrl: String) -> NextcloudDirectoryMetadataTable? { if let metadata = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND serverUrl == %@", account, serverUrl).first { return NextcloudDirectoryMetadataTable(value: metadata)