From 5fad10b36f3995853b97650874c67ec4c830d2c5 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Wed, 5 Mar 2025 09:35:42 +0100 Subject: [PATCH 1/6] cod Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKCommon.swift | 10 ++++- Sources/NextcloudKit/NKInterceptor.swift | 8 ++-- Sources/NextcloudKit/NKMonitor.swift | 40 ------------------- .../NextcloudKit/NextcloudKitBackground.swift | 4 +- 4 files changed, 14 insertions(+), 48 deletions(-) diff --git a/Sources/NextcloudKit/NKCommon.swift b/Sources/NextcloudKit/NKCommon.swift index 73a2c71c..1813b5a4 100644 --- a/Sources/NextcloudKit/NKCommon.swift +++ b/Sources/NextcloudKit/NKCommon.swift @@ -66,6 +66,12 @@ public struct NKCommon: Sendable { public let notificationCenterChunkedFileStop = NSNotification.Name(rawValue: "NextcloudKit.chunkedFile.stop") + public let headerAccount = "X-NC-Account" + public let headerCheckUnauthorized = "X-NC-CheckUnauthorized" + public let groupDefaultsUnauthorized = "Unauthorized" + public let groupDefaultsUnavailable = "Unavailable" + public let groupDefaultsToS = "ToS" + public enum TypeReachability: Int { case unknown = 0 case notReachable = 1 @@ -465,9 +471,9 @@ public struct NKCommon: Sendable { for (key, value) in options?.customHeader ?? [:] { headers.update(name: key, value: value) } - headers.update(name: "X-NC-Account", value: account) + headers.update(name: headerAccount, value: account) if let checkUnauthorized { - headers.update(name: "X-NC-CheckUnauthorized", value: checkUnauthorized.description) + headers.update(name: headerCheckUnauthorized, value: checkUnauthorized.description) } // Paginate if let options { diff --git a/Sources/NextcloudKit/NKInterceptor.swift b/Sources/NextcloudKit/NKInterceptor.swift index 795c23cb..a6f51dd1 100644 --- a/Sources/NextcloudKit/NKInterceptor.swift +++ b/Sources/NextcloudKit/NKInterceptor.swift @@ -21,12 +21,12 @@ final class NKInterceptor: RequestInterceptor, Sendable { debugPrint("[DEBUG] Interceptor request url: " + url) } - if let checkUnauthorized = urlRequest.value(forHTTPHeaderField: "X-NC-CheckUnauthorized"), + if let checkUnauthorized = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerCheckUnauthorized), checkUnauthorized == "false" { return completion(.success(urlRequest)) - } else if let account = urlRequest.value(forHTTPHeaderField: "X-NC-Account"), - let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier), - let unauthorizedArray = groupDefaults.array(forKey: "Unauthorized") as? [String], + } else if let account = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerAccount), + let groupDefaults = UserDefaults(suiteName: nkCommonInstance.groupIdentifier), + let unauthorizedArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { self.nkCommonInstance.writeLog("[DEBUG] Unauthorized for account: \(account)") let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 401)) diff --git a/Sources/NextcloudKit/NKMonitor.swift b/Sources/NextcloudKit/NKMonitor.swift index a0575297..9f4e0c7e 100644 --- a/Sources/NextcloudKit/NKMonitor.swift +++ b/Sources/NextcloudKit/NKMonitor.swift @@ -28,46 +28,6 @@ final class NKMonitor: EventMonitor, Sendable { func request(_ request: DataRequest, didParseResponse response: AFDataResponse) { nkCommonInstance.delegate?.request(request, didParseResponse: response) - if let statusCode = response.response?.statusCode { - - // - // Unauthorized, append the account in groupDefaults unauthorized array - // - if statusCode == 401, - let headerValue = request.request?.allHTTPHeaderFields?["X-NC-CheckUnauthorized"], - headerValue.lowercased() == "true", - let account = request.request?.allHTTPHeaderFields?["X-NC-Account"] as? String, - let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier) { - - var unauthorizedArray = groupDefaults.array(forKey: "Unauthorized") as? [String] ?? [] - if !unauthorizedArray.contains(account) { - unauthorizedArray.append(account) - groupDefaults.set(unauthorizedArray, forKey: "Unauthorized") - groupDefaults.synchronize() - } - - // - // Unavailable, append the account in groupDefaults unavailable array - // - } else if statusCode == 503, - let account = request.request?.allHTTPHeaderFields?["X-NC-Account"] as? String, - let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier) { - - var unavailableArray = groupDefaults.array(forKey: "Unavailable") as? [String] ?? [] - if !unavailableArray.contains(account) { - unavailableArray.append(account) - groupDefaults.set(unavailableArray, forKey: "Unavailable") - groupDefaults.synchronize() - } - } - - if let url = request.request?.url?.absoluteString, - let account = request.request?.allHTTPHeaderFields?["X-NC-Account"] as? String, - self.nkCommonInstance.levelLog > 0 { - debugPrint("[DEBUG] Monitor request url: \(url), status code \(statusCode), account: \(account)") - } - } - // // LOG // diff --git a/Sources/NextcloudKit/NextcloudKitBackground.swift b/Sources/NextcloudKit/NextcloudKitBackground.swift index 2a80b817..9121a75f 100644 --- a/Sources/NextcloudKit/NextcloudKitBackground.swift +++ b/Sources/NextcloudKit/NextcloudKitBackground.swift @@ -27,7 +27,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel url = (serverUrlFileName as? String)?.encodedToUrl as? URL } - if let unauthorizedArray = groupDefaults?.array(forKey: "Unauthorized") as? [String], + if let unauthorizedArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { return nil } @@ -77,7 +77,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel url = (serverUrlFileName as? String)?.encodedToUrl as? URL } - if let unauthorizedArray = groupDefaults?.array(forKey: "Unauthorized") as? [String], + if let unauthorizedArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { return nil } From eb6f513ea9d8f0608578ed2733ed66762db379ff Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Wed, 5 Mar 2025 09:44:16 +0100 Subject: [PATCH 2/6] cod Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKInterceptor.swift | 9 +++++++++ Sources/NextcloudKit/NextcloudKitBackground.swift | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/Sources/NextcloudKit/NKInterceptor.swift b/Sources/NextcloudKit/NKInterceptor.swift index a6f51dd1..60fdcf23 100644 --- a/Sources/NextcloudKit/NKInterceptor.swift +++ b/Sources/NextcloudKit/NKInterceptor.swift @@ -21,6 +21,15 @@ final class NKInterceptor: RequestInterceptor, Sendable { debugPrint("[DEBUG] Interceptor request url: " + url) } + if let account = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerAccount), + let groupDefaults = UserDefaults(suiteName: nkCommonInstance.groupIdentifier), + let tosArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsToS) as? [String], + tosArray.contains(account) { + self.nkCommonInstance.writeLog("[DEBUG] ToS for account: \(account)") + let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 403)) + return completion(.failure(error)) + } + if let checkUnauthorized = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerCheckUnauthorized), checkUnauthorized == "false" { return completion(.success(urlRequest)) diff --git a/Sources/NextcloudKit/NextcloudKitBackground.swift b/Sources/NextcloudKit/NextcloudKitBackground.swift index 9121a75f..41aacdd2 100644 --- a/Sources/NextcloudKit/NextcloudKitBackground.swift +++ b/Sources/NextcloudKit/NextcloudKitBackground.swift @@ -30,6 +30,9 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel if let unauthorizedArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { return nil + } else if let tosArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsToS) as? [String], + tosArray.contains(account) { + return nil } guard let nkSession = nkCommonInstance.getSession(account: account), @@ -80,6 +83,9 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel if let unauthorizedArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { return nil + } else if let tosArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsToS) as? [String], + tosArray.contains(account) { + return nil } guard let nkSession = nkCommonInstance.getSession(account: account), From ab5519451f307927b3466cad2a8bab8256308130 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Wed, 5 Mar 2025 11:37:14 +0100 Subject: [PATCH 3/6] code Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKError.swift | 3 +++ .../NextcloudKit/NextcloudKitBackground.swift | 25 ++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Sources/NextcloudKit/NKError.swift b/Sources/NextcloudKit/NKError.swift index 5d4db76d..eac9416b 100644 --- a/Sources/NextcloudKit/NKError.swift +++ b/Sources/NextcloudKit/NKError.swift @@ -52,6 +52,9 @@ public struct NKError: Sendable, Equatable { public static let xmlError = NKError(errorCode: NSURLErrorBadServerResponse, errorDescription: NSLocalizedString("_error_decode_xml_", value: "Invalid response, error decoding XML", comment: "")) public static let invalidDate = NKError(errorCode: NSURLErrorBadServerResponse, errorDescription: NSLocalizedString("_invalid_date_format_", value: "Invalid date format", comment: "")) public static let invalidData = NKError(errorCode: NSURLErrorCannotDecodeContentData, errorDescription: NSLocalizedString("_invalid_data_format_", value: "Invalid data format", comment: "")) + public static let unauthorizedError = NKError(errorCode: 401, errorDescription: NSLocalizedString("_unauthorized_", value: "Unauthorized", comment: "")) + public static let forbiddenError = NKError(errorCode: 403, errorDescription: NSLocalizedString("_forbidden_", value: "Forbidden", comment: "")) + public static let success = NKError(errorCode: 0, errorDescription: "") public static func getErrorDescription(for code: Int) -> String? { diff --git a/Sources/NextcloudKit/NextcloudKitBackground.swift b/Sources/NextcloudKit/NextcloudKitBackground.swift index 41aacdd2..af3f1038 100644 --- a/Sources/NextcloudKit/NextcloudKitBackground.swift +++ b/Sources/NextcloudKit/NextcloudKitBackground.swift @@ -17,7 +17,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel public func download(serverUrlFileName: Any, fileNameLocalPath: String, taskDescription: String? = nil, - account: String) -> URLSessionDownloadTask? { + account: String) -> (URLSessionDownloadTask?, error: NKError?) { var url: URL? let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier) @@ -29,23 +29,23 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel if let unauthorizedArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { - return nil + return (nil, .unauthorizedError) } else if let tosArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsToS) as? [String], tosArray.contains(account) { - return nil + return (nil, .forbiddenError) } guard let nkSession = nkCommonInstance.getSession(account: account), let urlForRequest = url else { - return nil + return (nil, .urlError) } var request = URLRequest(url: urlForRequest) let loginString = "\(nkSession.user):\(nkSession.password)" guard let loginData = loginString.data(using: String.Encoding.utf8) else { - return nil + return (nil, .invalidData) } let base64LoginString = loginData.base64EncodedString() @@ -57,7 +57,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel task.resume() self.nkCommonInstance.writeLog("Network start download file: \(serverUrlFileName)") - return task + return (task, .success) } // MARK: - Upload @@ -69,7 +69,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel taskDescription: String? = nil, overwrite: Bool = false, account: String, - sessionIdentifier: String) -> URLSessionUploadTask? { + sessionIdentifier: String) -> (URLSessionUploadTask?, error: NKError?) { var url: URL? var uploadSession: URLSession? let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier) @@ -82,22 +82,22 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel if let unauthorizedArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsUnauthorized) as? [String], unauthorizedArray.contains(account) { - return nil + return (nil, .unauthorizedError) } else if let tosArray = groupDefaults?.array(forKey: NextcloudKit.shared.nkCommonInstance.groupDefaultsToS) as? [String], tosArray.contains(account) { - return nil + return (nil, .forbiddenError) } guard let nkSession = nkCommonInstance.getSession(account: account), let urlForRequest = url else { - return nil + return (nil, .urlError) } var request = URLRequest(url: urlForRequest) let loginString = "\(nkSession.user):\(nkSession.password)" guard let loginData = loginString.data(using: String.Encoding.utf8) else { - return nil + return (nil, .invalidData) } let base64LoginString = loginData.base64EncodedString() @@ -128,7 +128,8 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel task?.taskDescription = taskDescription task?.resume() self.nkCommonInstance.writeLog("Network start upload file: \(serverUrlFileName)") - return task + + return (task, .success) } // MARK: - SessionDelegate From 299e2528609c77abd4e119f1ff0fc0cc54a38efd Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Wed, 5 Mar 2025 11:42:46 +0100 Subject: [PATCH 4/6] fix Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NextcloudKitBackground.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKitBackground.swift b/Sources/NextcloudKit/NextcloudKitBackground.swift index af3f1038..033b8c0c 100644 --- a/Sources/NextcloudKit/NextcloudKitBackground.swift +++ b/Sources/NextcloudKit/NextcloudKitBackground.swift @@ -17,7 +17,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel public func download(serverUrlFileName: Any, fileNameLocalPath: String, taskDescription: String? = nil, - account: String) -> (URLSessionDownloadTask?, error: NKError?) { + account: String) -> (URLSessionDownloadTask?, error: NKError) { var url: URL? let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier) @@ -69,7 +69,7 @@ public final class NKBackground: NSObject, URLSessionTaskDelegate, URLSessionDel taskDescription: String? = nil, overwrite: Bool = false, account: String, - sessionIdentifier: String) -> (URLSessionUploadTask?, error: NKError?) { + sessionIdentifier: String) -> (URLSessionUploadTask?, error: NKError) { var url: URL? var uploadSession: URLSession? let groupDefaults = UserDefaults(suiteName: NextcloudKit.shared.nkCommonInstance.groupIdentifier) From 1423f7080c0f97d60ef77f026fac6e941e6b98e1 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Thu, 6 Mar 2025 09:47:07 +0100 Subject: [PATCH 5/6] improvements Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKCommon.swift | 8 +- Sources/NextcloudKit/NKInterceptor.swift | 39 +++++---- Sources/NextcloudKit/NKRequestOptions.swift | 6 +- Sources/NextcloudKit/NextcloudKit+API.swift | 84 ++++--------------- .../NextcloudKit+PushNotification.swift | 12 +-- .../NextcloudKit+RecommendedFiles.swift | 6 +- .../NextcloudKit/NextcloudKit+WebDAV.swift | 54 ++---------- 7 files changed, 55 insertions(+), 154 deletions(-) diff --git a/Sources/NextcloudKit/NKCommon.swift b/Sources/NextcloudKit/NKCommon.swift index 1813b5a4..23396b86 100644 --- a/Sources/NextcloudKit/NKCommon.swift +++ b/Sources/NextcloudKit/NKCommon.swift @@ -67,7 +67,7 @@ public struct NKCommon: Sendable { public let notificationCenterChunkedFileStop = NSNotification.Name(rawValue: "NextcloudKit.chunkedFile.stop") public let headerAccount = "X-NC-Account" - public let headerCheckUnauthorized = "X-NC-CheckUnauthorized" + public let headerCheckInterceptor = "X-NC-CheckInterceptor" public let groupDefaultsUnauthorized = "Unauthorized" public let groupDefaultsUnavailable = "Unavailable" public let groupDefaultsToS = "ToS" @@ -450,7 +450,7 @@ public struct NKCommon: Sendable { return session } - public func getStandardHeaders(account: String, checkUnauthorized: Bool? = nil, options: NKRequestOptions? = nil) -> HTTPHeaders? { + public func getStandardHeaders(account: String, options: NKRequestOptions? = nil) -> HTTPHeaders? { guard let session = nksessions.filter({ $0.account == account }).first else { return nil} var headers: HTTPHeaders = [] @@ -472,8 +472,8 @@ public struct NKCommon: Sendable { headers.update(name: key, value: value) } headers.update(name: headerAccount, value: account) - if let checkUnauthorized { - headers.update(name: headerCheckUnauthorized, value: checkUnauthorized.description) + if let checkInterceptor = options?.checkInterceptor { + headers.update(name: headerCheckInterceptor, value: checkInterceptor.description) } // Paginate if let options { diff --git a/Sources/NextcloudKit/NKInterceptor.swift b/Sources/NextcloudKit/NKInterceptor.swift index 60fdcf23..f4b104b7 100644 --- a/Sources/NextcloudKit/NKInterceptor.swift +++ b/Sources/NextcloudKit/NKInterceptor.swift @@ -21,25 +21,30 @@ final class NKInterceptor: RequestInterceptor, Sendable { debugPrint("[DEBUG] Interceptor request url: " + url) } - if let account = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerAccount), - let groupDefaults = UserDefaults(suiteName: nkCommonInstance.groupIdentifier), - let tosArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsToS) as? [String], - tosArray.contains(account) { - self.nkCommonInstance.writeLog("[DEBUG] ToS for account: \(account)") - let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 403)) - return completion(.failure(error)) + if let checkInterceptor = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerCheckInterceptor), + checkInterceptor == "false" { + return completion(.success(urlRequest)) } - if let checkUnauthorized = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerCheckUnauthorized), - checkUnauthorized == "false" { - return completion(.success(urlRequest)) - } else if let account = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerAccount), - let groupDefaults = UserDefaults(suiteName: nkCommonInstance.groupIdentifier), - let unauthorizedArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsUnauthorized) as? [String], - unauthorizedArray.contains(account) { - self.nkCommonInstance.writeLog("[DEBUG] Unauthorized for account: \(account)") - let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 401)) - return completion(.failure(error)) + if let account = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerAccount), + let groupDefaults = UserDefaults(suiteName: nkCommonInstance.groupIdentifier) { + /// + /// Unauthorized + /// + if let unauthorizedArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsUnauthorized) as? [String], + unauthorizedArray.contains(account) { + self.nkCommonInstance.writeLog("[DEBUG] Unauthorized for account: \(account)") + let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 401)) + return completion(.failure(error)) + /// + /// ToS + /// + } else if let tosArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsToS) as? [String], + tosArray.contains(account) { + self.nkCommonInstance.writeLog("[DEBUG] ToS for account: \(account)") + let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 403)) + return completion(.failure(error)) + } } completion(.success(urlRequest)) diff --git a/Sources/NextcloudKit/NKRequestOptions.swift b/Sources/NextcloudKit/NKRequestOptions.swift index 2c2baa68..fe5ba863 100644 --- a/Sources/NextcloudKit/NKRequestOptions.swift +++ b/Sources/NextcloudKit/NKRequestOptions.swift @@ -16,7 +16,7 @@ public class NKRequestOptions: NSObject { var taskDescription: String? var createProperties: [NKProperties]? var removeProperties: [NKProperties] - var checkUnauthorized: Bool? + var checkInterceptor: Bool var paginate: Bool var paginateToken: String? var paginateOffset: Int? @@ -33,7 +33,7 @@ public class NKRequestOptions: NSObject { taskDescription: String? = nil, createProperties: [NKProperties]? = nil, removeProperties: [NKProperties] = [], - checkUnauthorized: Bool? = nil, + checkInterceptor: Bool = true, paginate: Bool = false, paginateToken: String? = nil, paginateOffset: Int? = nil, @@ -50,7 +50,7 @@ public class NKRequestOptions: NSObject { self.taskDescription = taskDescription self.createProperties = createProperties self.removeProperties = removeProperties - self.checkUnauthorized = checkUnauthorized + self.checkInterceptor = checkInterceptor self.paginate = paginate self.paginateToken = paginateToken self.paginateOffset = paginateOffset diff --git a/Sources/NextcloudKit/NextcloudKit+API.swift b/Sources/NextcloudKit/NextcloudKit+API.swift index 42b209d0..c07077f3 100644 --- a/Sources/NextcloudKit/NextcloudKit+API.swift +++ b/Sources/NextcloudKit/NextcloudKit+API.swift @@ -64,13 +64,9 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } let method = HTTPMethod(rawValue: method.uppercased()) @@ -100,13 +96,9 @@ public extension NextcloudKit { completion: @escaping (_ account: String, _ externalFiles: [NKExternalSite], _ responseData: AFDataResponse?, _ error: NKError) -> Void) { var externalSites: [NKExternalSite] = [] let endpoint = "ocs/v2.php/apps/external/api/v1" - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, externalSites, nil, .urlError) } } @@ -221,12 +213,8 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let nkSession = nkCommonInstance.getSession(account: account), - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } if var etag = etag { @@ -264,14 +252,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ width: Int, _ height: Int, _ etag: String?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "index.php/core/preview?fileId=\(fileId)&x=\(width)&y=\(height)&a=\(crop)&mode=\(cropMode)&forceIcon=\(forceIcon)&mimeFallback=\(mimeFallback)" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, width, height, nil, nil, .urlError) } } @@ -309,15 +293,11 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ width: Int, _ height: Int, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "index.php/apps/files_trashbin/preview?fileId=\(fileId)&x=\(width)&y=\(height)&a=\(crop)&mode=\(cropMode)&forceIcon=\(forceIcon)&mimeFallback=\(mimeFallback)" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, width, height, nil, .urlError) } } @@ -347,14 +327,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ imageAvatar: UIImage?, _ imageOriginal: UIImage?, _ etag: String?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "index.php/avatar/\(user)/\(sizeImage)" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, nil, nil, .urlError) } } @@ -451,13 +427,9 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let url = serverUrl.asUrl, let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } @@ -484,14 +456,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ userProfile: NKUserProfile?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/cloud/user" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } @@ -557,14 +525,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v1.php/cloud/capabilities" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } @@ -672,10 +636,6 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ activities: [NKActivity], _ activityFirstKnown: Int, _ activityLastGiven: Int, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } var activities: [NKActivity] = [] var activityFirstKnown = 0 var activityLastGiven = 0 @@ -700,7 +660,7 @@ public extension NextcloudKit { guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, activities, activityFirstKnown, activityLastGiven, nil, .urlError) } } @@ -773,14 +733,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ notifications: [NKNotifications]?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/apps/notifications/api/v2/notifications" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } @@ -851,12 +807,8 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } var url: URLConvertible? @@ -895,10 +847,6 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ url: String?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/apps/dav/api/v1/direct" let parameters: [String: Any] = [ "fileId": fileId, @@ -906,7 +854,7 @@ public extension NextcloudKit { ] guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } @@ -937,17 +885,13 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/apps/security_guard/diagnostics" /// options.contentType = "application/json" /// guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } var urlRequest: URLRequest diff --git a/Sources/NextcloudKit/NextcloudKit+PushNotification.swift b/Sources/NextcloudKit/NextcloudKit+PushNotification.swift index 18d29faa..1052157e 100644 --- a/Sources/NextcloudKit/NextcloudKit+PushNotification.swift +++ b/Sources/NextcloudKit/NextcloudKit+PushNotification.swift @@ -15,14 +15,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ deviceIdentifier: String?, _ signature: String?, _ publicKey: String?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/apps/notifications/api/v2/push" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, nil, nil, .urlError) } } let parameters = [ @@ -62,14 +58,10 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/apps/notifications/api/v2/push" guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } diff --git a/Sources/NextcloudKit/NextcloudKit+RecommendedFiles.swift b/Sources/NextcloudKit/NextcloudKit+RecommendedFiles.swift index 55d5e587..9bd3dea2 100644 --- a/Sources/NextcloudKit/NextcloudKit+RecommendedFiles.swift +++ b/Sources/NextcloudKit/NextcloudKit+RecommendedFiles.swift @@ -12,17 +12,13 @@ public extension NextcloudKit { request: @escaping (DataRequest?) -> Void = { _ in }, taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ recommendations: [NKRecommendation]?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } let endpoint = "ocs/v2.php/apps/recommendations/api/v1/recommendations" /// options.contentType = "application/xml" /// guard let nkSession = nkCommonInstance.getSession(account: account), let url = nkCommonInstance.createStandardUrl(serverUrl: nkSession.urlBase, endpoint: endpoint, options: options), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } diff --git a/Sources/NextcloudKit/NextcloudKit+WebDAV.swift b/Sources/NextcloudKit/NextcloudKit+WebDAV.swift index 2948973a..afbe4ed6 100644 --- a/Sources/NextcloudKit/NextcloudKit+WebDAV.swift +++ b/Sources/NextcloudKit/NextcloudKit+WebDAV.swift @@ -12,13 +12,9 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ ocId: String?, _ date: Date?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let url = serverUrlFileName.encodedToUrl, let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, nil, .urlError) } } let method = HTTPMethod(rawValue: "MKCOL") @@ -61,13 +57,9 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let url = serverUrlFileName.encodedToUrl, let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } var urlRequest: URLRequest @@ -102,13 +94,9 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let url = serverUrlFileNameSource.encodedToUrl, let nkSession = nkCommonInstance.getSession(account: account), - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } let method = HTTPMethod(rawValue: "MOVE") @@ -150,13 +138,9 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } guard let url = serverUrlFileNameSource.encodedToUrl, let nkSession = nkCommonInstance.getSession(account: account), - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } let method = HTTPMethod(rawValue: "COPY") @@ -201,10 +185,6 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ files: [NKFile]?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } var files: [NKFile] = [] var serverUrlFileName = serverUrlFileName /// @@ -212,7 +192,7 @@ public extension NextcloudKit { /// guard let nkSession = nkCommonInstance.getSession(account: account), let url = serverUrlFileName.encodedToUrl, - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } if depth == "0", serverUrlFileName.last == "/" { @@ -376,15 +356,11 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ files: [NKFile]?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } /// options.contentType = "application/xml" /// guard let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } var files: [NKFile] = [] @@ -429,15 +405,11 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } /// options.contentType = "application/xml" /// guard let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, .urlError) } } let serverUrlFileName = nkSession.urlBase + "/" + nkSession.dav + "/files/" + nkSession.userId + "/" + fileName @@ -479,15 +451,11 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ files: [NKFile]?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } /// options.contentType = "application/xml" /// guard let nkSession = nkCommonInstance.getSession(account: account), - let headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + let headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } let serverUrlFileName = nkSession.urlBase + "/" + nkSession.dav + "/files/" + nkSession.userId @@ -534,15 +502,11 @@ public extension NextcloudKit { options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ account: String, _ items: [NKTrash]?, _ responseData: AFDataResponse?, _ error: NKError) -> Void) { - var checkUnauthorized = true - if let optionsCheckUnauthorized = options.checkUnauthorized { - checkUnauthorized = optionsCheckUnauthorized - } /// options.contentType = "application/xml" /// guard let nkSession = nkCommonInstance.getSession(account: account), - var headers = nkCommonInstance.getStandardHeaders(account: account, checkUnauthorized: checkUnauthorized, options: options) else { + var headers = nkCommonInstance.getStandardHeaders(account: account, options: options) else { return options.queue.async { completion(account, nil, nil, .urlError) } } var serverUrlFileName = nkSession.urlBase + "/" + nkSession.dav + "/trashbin/" + nkSession.userId + "/trash/" From e7f32636ab1d98557a6fbf2f64a0e200d24cb7ec Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Thu, 6 Mar 2025 16:04:30 +0100 Subject: [PATCH 6/6] cod Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKInterceptor.swift | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Sources/NextcloudKit/NKInterceptor.swift b/Sources/NextcloudKit/NKInterceptor.swift index f4b104b7..802971a2 100644 --- a/Sources/NextcloudKit/NKInterceptor.swift +++ b/Sources/NextcloudKit/NKInterceptor.swift @@ -28,19 +28,21 @@ final class NKInterceptor: RequestInterceptor, Sendable { if let account = urlRequest.value(forHTTPHeaderField: nkCommonInstance.headerAccount), let groupDefaults = UserDefaults(suiteName: nkCommonInstance.groupIdentifier) { - /// /// Unauthorized - /// - if let unauthorizedArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsUnauthorized) as? [String], - unauthorizedArray.contains(account) { + if let array = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsUnauthorized) as? [String], + array.contains(account) { self.nkCommonInstance.writeLog("[DEBUG] Unauthorized for account: \(account)") let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 401)) return completion(.failure(error)) - /// + /// Unavailable + } else if let array = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsUnavailable) as? [String], + array.contains(account) { + self.nkCommonInstance.writeLog("[DEBUG] Unavailable for account: \(account)") + let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 503)) + return completion(.failure(error)) /// ToS - /// - } else if let tosArray = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsToS) as? [String], - tosArray.contains(account) { + } else if let array = groupDefaults.array(forKey: nkCommonInstance.groupDefaultsToS) as? [String], + array.contains(account) { self.nkCommonInstance.writeLog("[DEBUG] ToS for account: \(account)") let error = AFError.responseValidationFailed(reason: .unacceptableStatusCode(code: 403)) return completion(.failure(error))