diff --git a/Sources/NextcloudKit/NextcloudKit+API.swift b/Sources/NextcloudKit/NextcloudKit+API.swift index 7cf293f3..35d7bf23 100644 --- a/Sources/NextcloudKit/NextcloudKit+API.swift +++ b/Sources/NextcloudKit/NextcloudKit+API.swift @@ -131,6 +131,18 @@ public extension NextcloudKit { } } + func getExternalSiteAsync(account: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, externalFiles: [NKExternalSite], responseData: AFDataResponse?, error: NKError) { + await withUnsafeContinuation { continuation in + getExternalSite(account: account, + options: options, + taskHandler: taskHandler) { account, externalFiles, responseData, error in + continuation.resume(returning: (account, externalFiles, responseData, error)) + } + } + } + // MARK: - getServerStatus struct ServerInfo { @@ -151,17 +163,6 @@ public extension NextcloudKit { case failure(NKError) } - /// - /// Asynchronous method wrapper for ``getServerStatus(serverUrl:options:taskHandler:completion:)``. - /// - func getServerStatus(serverUrl: String, options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> ServerInfoResult { - await withCheckedContinuation { continuation in - getServerStatus(serverUrl: serverUrl, options: options, taskHandler: taskHandler) { _, serverInfoResult in - continuation.resume(returning: serverInfoResult) - } - } - } - func getServerStatus(serverUrl: String, options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, @@ -217,12 +218,15 @@ public extension NextcloudKit { } func getServerStatusAsync(serverUrl: String, - options: NKRequestOptions = NKRequestOptions()) async -> NextcloudKit.ServerInfoResult { - await withUnsafeContinuation({ continuation in - NextcloudKit.shared.getServerStatus(serverUrl: serverUrl) { _, serverInfoResult in - continuation.resume(returning: serverInfoResult) + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (responseData: AFDataResponse?, result: ServerInfoResult) { + await withUnsafeContinuation { continuation in + getServerStatus(serverUrl: serverUrl, + options: options, + taskHandler: taskHandler) { responseData, result in + continuation.resume(returning: (responseData, result)) } - }) + } } // MARK: - @@ -463,6 +467,28 @@ public extension NextcloudKit { } } + func downloadAvatarAsync(user: String, + fileNameLocalPath: String, + sizeImage: Int, + avatarSizeRounded: Int = 0, + etag: String?, + account: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, imageAvatar: UIImage?, imageOriginal: UIImage?, etag: String?, responseData: AFDataResponse?, error: NKError) { + await withUnsafeContinuation { continuation in + downloadAvatar(user: user, + fileNameLocalPath: fileNameLocalPath, + sizeImage: sizeImage, + avatarSizeRounded: avatarSizeRounded, + etag: etag, + account: account, + options: options, + taskHandler: taskHandler) { account, imageAvatar, imageOriginal, etag, responseData, error in + continuation.resume(returning: (account, imageAvatar, imageOriginal, etag, responseData, error)) + } + } + } + func downloadContent(serverUrl: String, account: String, options: NKRequestOptions = NKRequestOptions(), @@ -624,7 +650,6 @@ public extension NextcloudKit { } // MARK: - - func getCapabilities(account: String, options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }, @@ -653,6 +678,18 @@ public extension NextcloudKit { } } + func getCapabilitiesAsync(account: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, responseData: AFDataResponse?, error: NKError) { + await withUnsafeContinuation { continuation in + getCapabilities(account: account, + options: options, + taskHandler: taskHandler) { account, responseData, error in + continuation.resume(returning: (account, responseData, error)) + } + } + } + // MARK: - func getRemoteWipeStatus(serverUrl: String, diff --git a/Sources/NextcloudKit/NextcloudKit+NCText.swift b/Sources/NextcloudKit/NextcloudKit+NCText.swift index 7338416c..4f7f0b2d 100644 --- a/Sources/NextcloudKit/NextcloudKit+NCText.swift +++ b/Sources/NextcloudKit/NextcloudKit+NCText.swift @@ -70,6 +70,18 @@ public extension NextcloudKit { } } + func textObtainEditorDetailsAsync(account: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, editors: [NKEditorDetailsEditors], creators: [NKEditorDetailsCreators], responseData: AFDataResponse?, error: NKError) { + await withUnsafeContinuation { continuation in + textObtainEditorDetails(account: account, + options: options, + taskHandler: taskHandler) { account, editors, creators, responseData, error in + continuation.resume(returning: (account, editors, creators, responseData, error)) + } + } + } + func textOpenFile(fileNamePath: String, fileId: String? = nil, editor: String, diff --git a/Sources/NextcloudKit/NextcloudKit+UserStatus.swift b/Sources/NextcloudKit/NextcloudKit+UserStatus.swift index 13ac6e39..8dce2239 100644 --- a/Sources/NextcloudKit/NextcloudKit+UserStatus.swift +++ b/Sources/NextcloudKit/NextcloudKit+UserStatus.swift @@ -58,6 +58,20 @@ public extension NextcloudKit { } } + func getUserStatusAsync(userId: String? = nil, + account: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, clearAt: Date?, icon: String?, message: String?, messageId: String?, messageIsPredefined: Bool, status: String?, statusIsUserDefined: Bool, userId: String?, responseData: AFDataResponse?, error: NKError) { + await withUnsafeContinuation { continuation in + getUserStatus(userId: userId, + account: account, + options: options, + taskHandler: taskHandler) { account, clearAt, icon, message, messageId, messageIsPredefined, status, statusIsUserDefined, userId, responseData, error in + continuation.resume(returning: (account, clearAt, icon, message, messageId, messageIsPredefined, status, statusIsUserDefined, userId, responseData, error)) + } + } + } + func setUserStatus(status: String, account: String, options: NKRequestOptions = NKRequestOptions(), diff --git a/Sources/NextcloudKit/NextcloudKit+WebDAV.swift b/Sources/NextcloudKit/NextcloudKit+WebDAV.swift index f2d2248d..86dea614 100644 --- a/Sources/NextcloudKit/NextcloudKit+WebDAV.swift +++ b/Sources/NextcloudKit/NextcloudKit+WebDAV.swift @@ -629,4 +629,20 @@ public extension NextcloudKit { } } } + + func listingTrashAsync(filename: String? = nil, + showHiddenFiles: Bool, + account: String, + options: NKRequestOptions = NKRequestOptions(), + taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, items: [NKTrash]?, responseData: AFDataResponse?, error: NKError) { + await withUnsafeContinuation { continuation in + listingTrash(filename: filename, + showHiddenFiles: showHiddenFiles, + account: account, + options: options, + taskHandler: taskHandler) { account, items, responseData, error in + continuation.resume(returning: (account, items, responseData, error)) + } + } + } }