From ef0eb939ee0936cb35450a97a1f73a299911e13d Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 16:01:22 +0530 Subject: [PATCH 01/14] NMC - Added download limit api for sharing --- Sources/NextcloudKit/NextcloudKit+Share.swift | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index f52a1d43..cfa23dfe 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -77,6 +77,11 @@ import SwiftyJSON } } +public struct DownloadLimit: Codable { + var limit: Int? + var count: Int? +} + extension NextcloudKit { @objc public func readShares(parameters: NKShareParameter, @@ -547,6 +552,87 @@ extension NextcloudKit { return share } + + /// Fetch download limit for share + /// - Parameters: + /// - token: token to update share + /// - completion: return download limit or error + public func getDownloadLimit(token: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, + completion: @escaping (_ downloadLimit: DownloadLimit?, _ error: NKError) -> Void) { + let urlBase = self.nkCommonInstance.urlBase + let endPoint = "/ocs/v2.php/apps/files_downloadlimit/\(token)/limit" + guard let url = self.nkCommonInstance.createStandardUrl(serverUrl: urlBase, endpoint: endPoint) else { + return options.queue.async { completion(nil, .urlError) } + } + + let headers = self.nkCommonInstance.getStandardHeaders(options: options) + + sessionManager.request(url, method: .delete, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in + task.taskDescription = options.taskDescription + taskHandler(task) + }.response(queue: self.nkCommonInstance.backgroundQueue) { response in + if self.nkCommonInstance.levelLog > 0 { + debugPrint(response) + } + + switch response.result { + case .failure(let error): + let error = NKError(error: error, afResponse: response, responseData: response.data) + options.queue.async { completion(nil, error) } + case .success(let data): + guard let data else { + options.queue.async { completion(nil, .invalidData) } + return + } + let downloadLimitParser = DownloadLimitParser() + guard let downloadLimit = downloadLimitParser.parse(data) else { + options.queue.async { completion(nil, .invalidData) } + return + } + options.queue.async { completion(downloadLimit, .success) } + } + } + } + + /// Set Download limit + /// - Parameters: + /// - deleteLimit: Boolean if we want to remove complete limit + /// - limit: Number of downloads allow for share + /// - token: token to update share + /// - completion: return true if limit update or return error + func setDownloadLimit(deleteLimit: Bool, + limit: String, + token: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, + completion: @escaping (_ success: Bool?, _ error: NKError) -> Void) { + let urlBase = self.nkCommonInstance.urlBase + let endPoint = "/ocs/v2.php/apps/files_downloadlimit/\(token)/limit" + guard let url = self.nkCommonInstance.createStandardUrl(serverUrl: urlBase, endpoint: endPoint) else { + return options.queue.async { completion(nil, .urlError) } + } + + let headers = self.nkCommonInstance.getStandardHeaders(options: options) + + sessionManager.request(url, method: .delete, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in + task.taskDescription = options.taskDescription + taskHandler(task) + }.response(queue: self.nkCommonInstance.backgroundQueue) { response in + if self.nkCommonInstance.levelLog > 0 { + debugPrint(response) + } + + switch response.result { + case .failure(let error): + let error = NKError(error: error, afResponse: response, responseData: response.data) + options.queue.async { completion(false, error) } + case .success: + options.queue.async { completion(true, .success) } + } + } + } } @objc public class NKShare: NSObject { @@ -589,3 +675,39 @@ extension NextcloudKit { @objc public var userStatus = "" @objc public var attributes: String? } + + +class DownloadLimitParser: NSObject, XMLParserDelegate { + var message = "" + var foundCharacters = ""; + var downloadLimit = DownloadLimit() + + func parse(_ data: Data) -> DownloadLimit? { + let parser = XMLParser(data: data) + parser.delegate = self + return parser.parse() ? downloadLimit : nil + } + + // MARK:- XML Parser Delegate + public func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { + + } + public func parser(_ parser: XMLParser, foundCharacters string: String) { + self.foundCharacters += string; + } + + public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { + if elementName == "limit" { + let limit = self.foundCharacters.replacingOccurrences(of: "\n", with: "") + self.downloadLimit.limit = Int(limit.trimmingCharacters(in: .whitespaces)) + } + if elementName == "count" { + let count = self.foundCharacters.replacingOccurrences(of: "\n", with: "") + self.downloadLimit.count = Int(count.trimmingCharacters(in: .whitespaces)) + } + if elementName == "message"{ + self.message = self.foundCharacters + } + self.foundCharacters = "" + } +} From b4fa262acbee13c3d110777481199f52a581565a Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 16:18:56 +0530 Subject: [PATCH 02/14] Update function as public --- Sources/NextcloudKit/NextcloudKit+Share.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index cfa23dfe..06558d89 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -602,7 +602,7 @@ extension NextcloudKit { /// - limit: Number of downloads allow for share /// - token: token to update share /// - completion: return true if limit update or return error - func setDownloadLimit(deleteLimit: Bool, + public func setDownloadLimit(deleteLimit: Bool, limit: String, token: String, options: NKRequestOptions = NKRequestOptions(), From 2e55ed23768ffa23220694cde6abb6da365d704d Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 16:23:18 +0530 Subject: [PATCH 03/14] update download limit model access to public --- Sources/NextcloudKit/NextcloudKit+Share.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index 06558d89..58b2ea34 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -78,8 +78,8 @@ import SwiftyJSON } public struct DownloadLimit: Codable { - var limit: Int? - var count: Int? + public var limit: Int? + public var count: Int? } extension NextcloudKit { From 58748459b17d6531807639daff4cff24b1aa95b1 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 16:30:49 +0530 Subject: [PATCH 04/14] added initialiser for download limit --- Sources/NextcloudKit/NextcloudKit+Share.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index 58b2ea34..5292c924 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -80,6 +80,10 @@ import SwiftyJSON public struct DownloadLimit: Codable { public var limit: Int? public var count: Int? + init(limit: Int? = nil, count: Int? = nil) { + self.limit = limit + self.count = count + } } extension NextcloudKit { From be68ad659f608c04deab9144ef965b4ef6ede369 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 16:52:10 +0530 Subject: [PATCH 05/14] Make the DownloadLimitParser class public --- Sources/NextcloudKit/NextcloudKit+Share.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index 5292c924..f26929e4 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -681,7 +681,7 @@ extension NextcloudKit { } -class DownloadLimitParser: NSObject, XMLParserDelegate { +public class DownloadLimitParser: NSObject, XMLParserDelegate { var message = "" var foundCharacters = ""; var downloadLimit = DownloadLimit() From 2849f406e561e1520a69c3cb8d7fa1acaf6b25bc Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 17:30:06 +0530 Subject: [PATCH 06/14] Update DownloadLimit model --- Sources/NextcloudKit/NextcloudKit+Share.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index f26929e4..e509035a 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -77,7 +77,7 @@ import SwiftyJSON } } -public struct DownloadLimit: Codable { +public struct DownloadLimit { public var limit: Int? public var count: Int? init(limit: Int? = nil, count: Int? = nil) { From 41899754f3c3548a0649bf23d957c498d1701618 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 17:33:15 +0530 Subject: [PATCH 07/14] Update init access specifire --- Sources/NextcloudKit/NextcloudKit+Share.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index e509035a..aa16a260 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -80,7 +80,7 @@ import SwiftyJSON public struct DownloadLimit { public var limit: Int? public var count: Int? - init(limit: Int? = nil, count: Int? = nil) { + public init(limit: Int? = nil, count: Int? = nil) { self.limit = limit self.count = count } From 855a43a8630284cf6d7e999d4d6b33ed4416d2cb Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Tue, 12 Nov 2024 17:41:28 +0530 Subject: [PATCH 08/14] Http method update --- Sources/NextcloudKit/NextcloudKit+Share.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index aa16a260..fdae550d 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -573,7 +573,7 @@ extension NextcloudKit { let headers = self.nkCommonInstance.getStandardHeaders(options: options) - sessionManager.request(url, method: .delete, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in + sessionManager.request(url, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in task.taskDescription = options.taskDescription taskHandler(task) }.response(queue: self.nkCommonInstance.backgroundQueue) { response in @@ -620,7 +620,7 @@ extension NextcloudKit { let headers = self.nkCommonInstance.getStandardHeaders(options: options) - sessionManager.request(url, method: .delete, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in + sessionManager.request(url, method: .put, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in task.taskDescription = options.taskDescription taskHandler(task) }.response(queue: self.nkCommonInstance.backgroundQueue) { response in From 0fff3b67719a44e15b47d87319ef184a19809ca7 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Wed, 13 Nov 2024 12:35:37 +0530 Subject: [PATCH 09/14] update url --- Sources/NextcloudKit/NextcloudKit+Share.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index fdae550d..fee10f0f 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -566,7 +566,7 @@ extension NextcloudKit { taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ downloadLimit: DownloadLimit?, _ error: NKError) -> Void) { let urlBase = self.nkCommonInstance.urlBase - let endPoint = "/ocs/v2.php/apps/files_downloadlimit/\(token)/limit" + let endPoint = "ocs/v2.php/apps/files_downloadlimit/\(token)/limit" guard let url = self.nkCommonInstance.createStandardUrl(serverUrl: urlBase, endpoint: endPoint) else { return options.queue.async { completion(nil, .urlError) } } @@ -613,7 +613,7 @@ extension NextcloudKit { taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, completion: @escaping (_ success: Bool?, _ error: NKError) -> Void) { let urlBase = self.nkCommonInstance.urlBase - let endPoint = "/ocs/v2.php/apps/files_downloadlimit/\(token)/limit" + let endPoint = "ocs/v2.php/apps/files_downloadlimit/\(token)/limit" guard let url = self.nkCommonInstance.createStandardUrl(serverUrl: urlBase, endpoint: endPoint) else { return options.queue.async { completion(nil, .urlError) } } From 736d1be8d5d9c0b259f7daa6cbc38ad242b09a5c Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Wed, 13 Nov 2024 13:48:59 +0530 Subject: [PATCH 10/14] update params --- Sources/NextcloudKit/NextcloudKit+Share.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index fee10f0f..9e742ccd 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -619,8 +619,8 @@ extension NextcloudKit { } let headers = self.nkCommonInstance.getStandardHeaders(options: options) - - sessionManager.request(url, method: .put, parameters: nil, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in + let parameters = ["token": token, "limit": limit] + sessionManager.request(url, method: deleteLimit ? .delete : .put, parameters: parameters, encoding: URLEncoding.default, headers: headers, interceptor: nil).validate(statusCode: 200..<300).onURLSessionTaskCreation { task in task.taskDescription = options.taskDescription taskHandler(task) }.response(queue: self.nkCommonInstance.backgroundQueue) { response in From 47d347e5ee497a2ab0e97e0b79e5414cf8e424b9 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Wed, 13 Nov 2024 14:57:49 +0530 Subject: [PATCH 11/14] Parser update --- Sources/NextcloudKit/NextcloudKit+Share.swift | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index 9e742ccd..730d2528 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -683,7 +683,7 @@ extension NextcloudKit { public class DownloadLimitParser: NSObject, XMLParserDelegate { var message = "" - var foundCharacters = ""; + var foundCharacters = "" var downloadLimit = DownloadLimit() func parse(_ data: Data) -> DownloadLimit? { @@ -692,26 +692,30 @@ public class DownloadLimitParser: NSObject, XMLParserDelegate { return parser.parse() ? downloadLimit : nil } - // MARK:- XML Parser Delegate + // MARK: - XML Parser Delegate public func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { - + // Reset foundCharacters for each new element + foundCharacters = "" } + public func parser(_ parser: XMLParser, foundCharacters string: String) { - self.foundCharacters += string; + // Accumulate found characters + foundCharacters += string } public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { + // Trim and process found characters based on element type + let trimmedValue = foundCharacters.trimmingCharacters(in: .whitespacesAndNewlines) + if elementName == "limit" { - let limit = self.foundCharacters.replacingOccurrences(of: "\n", with: "") - self.downloadLimit.limit = Int(limit.trimmingCharacters(in: .whitespaces)) + downloadLimit.limit = Int(trimmedValue) ?? 0 + } else if elementName == "count" { + downloadLimit.count = Int(trimmedValue) ?? 0 + } else if elementName == "message" { + message = trimmedValue } - if elementName == "count" { - let count = self.foundCharacters.replacingOccurrences(of: "\n", with: "") - self.downloadLimit.count = Int(count.trimmingCharacters(in: .whitespaces)) - } - if elementName == "message"{ - self.message = self.foundCharacters - } - self.foundCharacters = "" + + // Reset foundCharacters after processing + foundCharacters = "" } } From 45f7b4a872b65ea1bdb56dbb25b8b7470b800fe2 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Wed, 13 Nov 2024 15:16:12 +0530 Subject: [PATCH 12/14] parser update --- Sources/NextcloudKit/NextcloudKit+Share.swift | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index 730d2528..ceb4be46 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -591,10 +591,7 @@ extension NextcloudKit { return } let downloadLimitParser = DownloadLimitParser() - guard let downloadLimit = downloadLimitParser.parse(data) else { - options.queue.async { completion(nil, .invalidData) } - return - } + let downloadLimit = downloadLimitParser.parse(data: data) options.queue.async { completion(downloadLimit, .success) } } } @@ -681,30 +678,31 @@ extension NextcloudKit { } -public class DownloadLimitParser: NSObject, XMLParserDelegate { +// XML Parser class +class DownloadLimitParser: NSObject, XMLParserDelegate { var message = "" var foundCharacters = "" var downloadLimit = DownloadLimit() - func parse(_ data: Data) -> DownloadLimit? { + // Method to start parsing + func parse(data: Data) -> DownloadLimit { let parser = XMLParser(data: data) parser.delegate = self - return parser.parse() ? downloadLimit : nil + parser.parse() + return downloadLimit } - // MARK: - XML Parser Delegate - public func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { - // Reset foundCharacters for each new element + // MARK: - XMLParserDelegate Methods + + func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { foundCharacters = "" } - public func parser(_ parser: XMLParser, foundCharacters string: String) { - // Accumulate found characters + func parser(_ parser: XMLParser, foundCharacters string: String) { foundCharacters += string } - public func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { - // Trim and process found characters based on element type + func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { let trimmedValue = foundCharacters.trimmingCharacters(in: .whitespacesAndNewlines) if elementName == "limit" { @@ -718,4 +716,12 @@ public class DownloadLimitParser: NSObject, XMLParserDelegate { // Reset foundCharacters after processing foundCharacters = "" } + + func parserDidEndDocument(_ parser: XMLParser) { + print("Parsing completed!") + } + + func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) { + print("Parsing error: \(parseError.localizedDescription)") + } } From a4ecd738322574b2e647e2ea1b8fc076cf554342 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Thu, 14 Nov 2024 12:31:51 +0530 Subject: [PATCH 13/14] Data type update --- Sources/NextcloudKit/NextcloudKit+Share.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index ceb4be46..ed1f5b6c 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -564,7 +564,7 @@ extension NextcloudKit { public func getDownloadLimit(token: String, options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, - completion: @escaping (_ downloadLimit: DownloadLimit?, _ error: NKError) -> Void) { + completion: @escaping (_ data: Data?, _ error: NKError) -> Void) { let urlBase = self.nkCommonInstance.urlBase let endPoint = "ocs/v2.php/apps/files_downloadlimit/\(token)/limit" guard let url = self.nkCommonInstance.createStandardUrl(serverUrl: urlBase, endpoint: endPoint) else { @@ -590,9 +590,9 @@ extension NextcloudKit { options.queue.async { completion(nil, .invalidData) } return } - let downloadLimitParser = DownloadLimitParser() - let downloadLimit = downloadLimitParser.parse(data: data) - options.queue.async { completion(downloadLimit, .success) } +// let downloadLimitParser = DownloadLimitParser() +// let downloadLimit = downloadLimitParser.parse(data: data) + options.queue.async { completion(data, .success) } } } } From d6e6a063f62358fb1d13b960fbce9507208d22f6 Mon Sep 17 00:00:00 2001 From: Amrut Waghmare Date: Thu, 14 Nov 2024 12:53:02 +0530 Subject: [PATCH 14/14] Update download Limit --- Sources/NextcloudKit/NextcloudKit+Share.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/NextcloudKit/NextcloudKit+Share.swift b/Sources/NextcloudKit/NextcloudKit+Share.swift index ed1f5b6c..1d47c7c2 100644 --- a/Sources/NextcloudKit/NextcloudKit+Share.swift +++ b/Sources/NextcloudKit/NextcloudKit+Share.swift @@ -564,7 +564,7 @@ extension NextcloudKit { public func getDownloadLimit(token: String, options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, - completion: @escaping (_ data: Data?, _ error: NKError) -> Void) { + completion: @escaping (_ downloadLimit: DownloadLimit?, _ error: NKError) -> Void) { let urlBase = self.nkCommonInstance.urlBase let endPoint = "ocs/v2.php/apps/files_downloadlimit/\(token)/limit" guard let url = self.nkCommonInstance.createStandardUrl(serverUrl: urlBase, endpoint: endPoint) else { @@ -585,14 +585,14 @@ extension NextcloudKit { case .failure(let error): let error = NKError(error: error, afResponse: response, responseData: response.data) options.queue.async { completion(nil, error) } - case .success(let data): - guard let data else { + case .success: + guard let data = response.data else { options.queue.async { completion(nil, .invalidData) } return } -// let downloadLimitParser = DownloadLimitParser() -// let downloadLimit = downloadLimitParser.parse(data: data) - options.queue.async { completion(data, .success) } + let downloadLimitParser = DownloadLimitParser() + let downloadLimit = downloadLimitParser.parse(data: data) + options.queue.async { completion(downloadLimit, .success) } } } }