mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Add init for ShareCapabilities
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
3ffcd6de42
commit
8039fcd951
@ -11,6 +11,7 @@ extension Logger {
|
||||
private static var subsystem = Bundle.main.bundleIdentifier!
|
||||
|
||||
static let actionViewController = Logger(subsystem: subsystem, category: "actionViewController")
|
||||
static let shareCapabilities = Logger(subsystem: subsystem, category: "shareCapabilities")
|
||||
static let shareController = Logger(subsystem: subsystem, category: "shareController")
|
||||
static let sharesDataSource = Logger(subsystem: subsystem, category: "sharesDataSource")
|
||||
static let shareOptionsView = Logger(subsystem: subsystem, category: "shareOptionsView")
|
||||
|
||||
@ -68,4 +68,23 @@ struct ShareCapabilities {
|
||||
private(set) var defaultPermissions = 0
|
||||
private(set) var email = EmailCapabilities(dict: [:])
|
||||
private(set) var publicLink = PublicLinkCapabilities(dict: [:])
|
||||
|
||||
init(json: Data) {
|
||||
guard let anyJson = try? JSONSerialization.jsonObject(with: json, options: []),
|
||||
let jsonDict = anyJson as? [String : Any],
|
||||
let sharingCapabilities = jsonDict["files_sharing"] as? [String : Any]
|
||||
else {
|
||||
Logger.shareCapabilities.error("Could not parse share capabilities!")
|
||||
return
|
||||
}
|
||||
apiEnabled = sharingCapabilities["api_enabled"] as? Bool ?? false
|
||||
|
||||
if let emailCapabilities = sharingCapabilities["sharebymail"] as? [String : Any] {
|
||||
email = EmailCapabilities(dict: emailCapabilities)
|
||||
}
|
||||
|
||||
if let publicLinkCapabilities = sharingCapabilities["public"] as? [String : Any] {
|
||||
publicLink = PublicLinkCapabilities(dict: publicLinkCapabilities)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user