Add functionality to share controller to save changes

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2024-03-04 20:41:01 +08:00
parent 318661748d
commit 29262345cd
2 changed files with 28 additions and 2 deletions

View File

@ -11,6 +11,7 @@ extension Logger {
private static var subsystem = Bundle.main.bundleIdentifier!
static let actionViewController = Logger(subsystem: subsystem, category: "actionViewController")
static let shareController = Logger(subsystem: subsystem, category: "shareController")
static let sharesDataSource = Logger(subsystem: subsystem, category: "sharesDataSource")
static let shareViewController = Logger(subsystem: subsystem, category: "shareViewController")
}

View File

@ -5,15 +5,40 @@
// Created by Claudio Cambra on 4/3/24.
//
import Combine
import Foundation
import NextcloudKit
import OSLog
class ShareController {
let share: NKShare
class ShareController: ObservableObject {
@Published private(set) var share: NKShare
private let kit: NextcloudKit
init(share: NKShare, kit: NextcloudKit) {
self.share = share
self.kit = kit
}
func save() async -> NKError? {
return await withCheckedContinuation { continuation in
kit.updateShare(
idShare: share.idShare,
password: share.password,
expireDate: share.expirationDateString ?? "",
permissions: share.permissions,
note: share.note,
label: share.label,
hideDownload: share.hideDownload,
attributes: share.attributes
) { account, share, data, error in
Logger.shareController.info("Received update response: \(share?.url ?? "")")
defer { continuation.resume(returning: error) }
guard error == .success, let share = share else {
Logger.shareController.error("Error updating save: \(error.errorDescription)")
return
}
self.share = share
}
}
}
}