From ebf96e3e818aea49c40a655ccae57c5b4d538218 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 21 Mar 2023 13:21:51 +0100 Subject: [PATCH] Make NKError extension code more Swift-like, clean up Signed-off-by: Claudio Cambra --- .../Extensions/NKError+Extensions.swift | 55 +++++++------------ .../FileProviderEnumerator.swift | 6 +- .../FileProviderExtension.swift | 12 ++-- 3 files changed, 30 insertions(+), 43 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/NKError+Extensions.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/NKError+Extensions.swift index c82162e85..f9ca6681f 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/NKError+Extensions.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Extensions/NKError+Extensions.swift @@ -18,61 +18,48 @@ import NextcloudKit extension NKError { static var noChangesErrorCode: Int { - get { - return -200 - } + return -200 } var isCouldntConnectError: Bool { - get { - let nkErrorCode = self.errorCode - return nkErrorCode == -9999 || - nkErrorCode == -1001 || - nkErrorCode == -1004 || - nkErrorCode == -1005 || - nkErrorCode == -1009 || - nkErrorCode == -1012 || - nkErrorCode == -1200 || - nkErrorCode == -1202 || - nkErrorCode == 500 || - nkErrorCode == 503 || - nkErrorCode == 200 - } + return errorCode == -9999 || + errorCode == -1001 || + errorCode == -1004 || + errorCode == -1005 || + errorCode == -1009 || + errorCode == -1012 || + errorCode == -1200 || + errorCode == -1202 || + errorCode == 500 || + errorCode == 503 || + errorCode == 200 } var isUnauthenticatedError: Bool { - get { - return self.errorCode == -1013 - } + return errorCode == -1013 } var isGoingOverQuotaError: Bool { - get { - return self.errorCode == 507 - } + return errorCode == 507 } var isNotFoundError: Bool { - get { - return self.errorCode == 404 - } + return errorCode == 404 } var isNoChangesError: Bool { - get { - return self.errorCode == NKError.noChangesErrorCode - } + return errorCode == NKError.noChangesErrorCode } - func toFileProviderError() -> NSFileProviderError { - if self.isNotFoundError { + var fileProviderError: NSFileProviderError { + if isNotFoundError { return NSFileProviderError(.noSuchItem) - } else if self.isCouldntConnectError { + } else if isCouldntConnectError { // Provide something the file provider can do something with return NSFileProviderError(.serverUnreachable) - } else if self.isUnauthenticatedError { + } else if isUnauthenticatedError { return NSFileProviderError(.notAuthenticated) - } else if self.isGoingOverQuotaError { + } else if isGoingOverQuotaError { return NSFileProviderError(.insufficientQuota) } else { return NSFileProviderError(.cannotSynchronize) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift index 61af1c8bc..057525e17 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift @@ -115,7 +115,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { Logger.enumeration.error("Finishing enumeration for user: \(self.ncAccount.ncKitAccount, privacy: OSLogPrivacy.auto(mask: .hash)) with serverUrl: \(self.serverUrl, privacy: OSLogPrivacy.auto(mask: .hash)) with error \(readError!.localizedDescription, privacy: .public)") let nkReadError = NKError(error: readError!) - observer.finishEnumeratingWithError(nkReadError.toFileProviderError()) + observer.finishEnumeratingWithError(nkReadError.fileProviderError) return } @@ -169,7 +169,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { guard error == nil else { Logger.enumeration.info("Finished recursive change enumeration of working set for user: \(self.ncAccount.ncKitAccount, privacy: OSLogPrivacy.auto(mask: .hash)) with error: \(error!.errorDescription, privacy: .public)") - observer.finishEnumeratingWithError(error!.toFileProviderError()) + observer.finishEnumeratingWithError(error!.fileProviderError) return } @@ -208,7 +208,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { Logger.enumeration.error("Finishing enumeration of changes for user: \(self.ncAccount.ncKitAccount, privacy: OSLogPrivacy.auto(mask: .hash)) with serverUrl: \(self.serverUrl, privacy: OSLogPrivacy.auto(mask: .hash)) with error: \(readError!.localizedDescription, privacy: .public)") let nkReadError = NKError(error: readError!) - let fpError = nkReadError.toFileProviderError() + let fpError = nkReadError.fileProviderError if nkReadError.isNotFoundError { Logger.enumeration.info("404 error means item no longer exists. Deleting metadata and reporting \(self.serverUrl, privacy: OSLogPrivacy.auto(mask: .hash)) as deletion without error") diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift index acde41f16..d4357b7b4 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift @@ -191,7 +191,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm dbManager.addItemMetadata(updatedMetadata) - completionHandler(nil, nil, error.toFileProviderError()) + completionHandler(nil, nil, error.fileProviderError) } } } @@ -255,7 +255,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm self.ncKit.createFolder(serverUrlFileName: newServerUrlFileName) { account, ocId, _, error in guard error == .success else { Logger.fileTransfer.error("Could not create new folder with name: \(itemTemplate.filename, privacy: .public), received error: \(error.errorDescription, privacy: .public)") - completionHandler(itemTemplate, [], false, error.toFileProviderError()) + completionHandler(itemTemplate, [], false, error.fileProviderError) return } @@ -295,7 +295,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm }) { account, ocId, etag, date, size, _, _, error in guard error == .success, let ocId = ocId else { Logger.fileTransfer.error("Could not upload item with filename: \(itemTemplate.filename, privacy: OSLogPrivacy.auto(mask: .hash)), received error: \(error.errorDescription, privacy: .public)") - completionHandler(itemTemplate, [], false, error.toFileProviderError()) + completionHandler(itemTemplate, [], false, error.fileProviderError) return } @@ -403,7 +403,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm overwrite: false) { account, error in guard error == .success else { Logger.fileTransfer.error("Could not move file or folder: \(oldServerUrlFileName, privacy: OSLogPrivacy.auto(mask: .hash)) to \(newServerUrlFileName, privacy: OSLogPrivacy.auto(mask: .hash)), received error: \(error.errorDescription, privacy: .public)") - renameError = error.toFileProviderError() + renameError = error.fileProviderError moveFileOrFolderDispatchGroup.leave() return } @@ -529,7 +529,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm dbManager.addItemMetadata(metadata) - completionHandler(modifiedItem, [], false, error.toFileProviderError()) + completionHandler(modifiedItem, [], false, error.fileProviderError) return } } @@ -569,7 +569,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm self.ncKit.deleteFileOrFolder(serverUrlFileName: serverFileNameUrl) { account, error in guard error == .success else { Logger.fileTransfer.error("Could not delete item with ocId \(identifier.rawValue, privacy: .public) at \(serverFileNameUrl, privacy: OSLogPrivacy.auto(mask: .hash)), received error: \(error.errorDescription, privacy: .public)") - completionHandler(error.toFileProviderError()) + completionHandler(error.fileProviderError) return } -- 2.30.2