From 1a5213cdcfbfd8b79fe38e4e939ec33e963a4ab3 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 27 Feb 2024 22:43:58 +0800 Subject: [PATCH] Add method to convert dictionary to NextcloudAccount Signed-off-by: Claudio Cambra --- .../Extensions/Logger+Extensions.swift | 1 + .../FileProviderExt/NextcloudAccount.swift | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/Logger+Extensions.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/Logger+Extensions.swift index 0f84447e2..e9e5d78fd 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/Logger+Extensions.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/Logger+Extensions.swift @@ -27,6 +27,7 @@ extension Logger { static let localFileOps = Logger(subsystem: subsystem, category: "localfileoperations") static let ncFilesDatabase = Logger(subsystem: subsystem, category: "nextcloudfilesdatabase") static let shares = Logger(subsystem: subsystem, category: "shares") + static let ncAccount = Logger(subsystem: subsystem, category: "ncAccount") static let materialisedFileHandling = Logger( subsystem: subsystem, category: "materialisedfilehandling" ) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudAccount.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudAccount.swift index 14c242b49..b522d8d03 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudAccount.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudAccount.swift @@ -14,6 +14,7 @@ import FileProvider import Foundation +import OSLog let ncAccountDictUsernameKey = "usernameKey" let ncAccountDictPasswordKey = "passwordKey" @@ -33,6 +34,24 @@ struct NextcloudAccount: Equatable { davFilesUrl = serverUrl + NextcloudAccount.webDavFilesUrlSuffix + user } + init?(dictionary: Dictionary) { + guard let username = dictionary[ncAccountDictUsernameKey], + let password = dictionary[ncAccountDictPasswordKey], + let ncKitAccount = dictionary[ncAccountDictNcKitAccountKey], + let serverUrl = dictionary[ncAccountDictServerUrlKey], + let davFilesUrl = dictionary[ncAccountDictDavFilesUrlKey] + else { + Logger.ncAccount.error("Could not convert dictionary to NextcloudAccount!") + return nil + } + + self.username = username + self.password = password + self.ncKitAccount = ncKitAccount + self.serverUrl = serverUrl + self.davFilesUrl = davFilesUrl + } + func dictionary() -> Dictionary { return [ ncAccountDictUsernameKey: username, -- 2.30.2