Skip to content

Commit 9aafdde

Browse files
Merge pull request #147 from nextcloud/asynFunction
newAsyncFunction
2 parents 7bac9c2 + 0664a5c commit 9aafdde

4 files changed

Lines changed: 96 additions & 17 deletions

File tree

Sources/NextcloudKit/NextcloudKit+API.swift

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,18 @@ public extension NextcloudKit {
131131
}
132132
}
133133

134+
func getExternalSiteAsync(account: String,
135+
options: NKRequestOptions = NKRequestOptions(),
136+
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, externalFiles: [NKExternalSite], responseData: AFDataResponse<Data>?, error: NKError) {
137+
await withUnsafeContinuation { continuation in
138+
getExternalSite(account: account,
139+
options: options,
140+
taskHandler: taskHandler) { account, externalFiles, responseData, error in
141+
continuation.resume(returning: (account, externalFiles, responseData, error))
142+
}
143+
}
144+
}
145+
134146
// MARK: - getServerStatus
135147

136148
struct ServerInfo {
@@ -151,17 +163,6 @@ public extension NextcloudKit {
151163
case failure(NKError)
152164
}
153165

154-
///
155-
/// Asynchronous method wrapper for ``getServerStatus(serverUrl:options:taskHandler:completion:)``.
156-
///
157-
func getServerStatus(serverUrl: String, options: NKRequestOptions = NKRequestOptions(), taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> ServerInfoResult {
158-
await withCheckedContinuation { continuation in
159-
getServerStatus(serverUrl: serverUrl, options: options, taskHandler: taskHandler) { _, serverInfoResult in
160-
continuation.resume(returning: serverInfoResult)
161-
}
162-
}
163-
}
164-
165166
func getServerStatus(serverUrl: String,
166167
options: NKRequestOptions = NKRequestOptions(),
167168
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in },
@@ -217,12 +218,15 @@ public extension NextcloudKit {
217218
}
218219

219220
func getServerStatusAsync(serverUrl: String,
220-
options: NKRequestOptions = NKRequestOptions()) async -> NextcloudKit.ServerInfoResult {
221-
await withUnsafeContinuation({ continuation in
222-
NextcloudKit.shared.getServerStatus(serverUrl: serverUrl) { _, serverInfoResult in
223-
continuation.resume(returning: serverInfoResult)
221+
options: NKRequestOptions = NKRequestOptions(),
222+
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (responseData: AFDataResponse<Data>?, result: ServerInfoResult) {
223+
await withUnsafeContinuation { continuation in
224+
getServerStatus(serverUrl: serverUrl,
225+
options: options,
226+
taskHandler: taskHandler) { responseData, result in
227+
continuation.resume(returning: (responseData, result))
224228
}
225-
})
229+
}
226230
}
227231

228232
// MARK: -
@@ -463,6 +467,28 @@ public extension NextcloudKit {
463467
}
464468
}
465469

470+
func downloadAvatarAsync(user: String,
471+
fileNameLocalPath: String,
472+
sizeImage: Int,
473+
avatarSizeRounded: Int = 0,
474+
etag: String?,
475+
account: String,
476+
options: NKRequestOptions = NKRequestOptions(),
477+
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, imageAvatar: UIImage?, imageOriginal: UIImage?, etag: String?, responseData: AFDataResponse<Data?>?, error: NKError) {
478+
await withUnsafeContinuation { continuation in
479+
downloadAvatar(user: user,
480+
fileNameLocalPath: fileNameLocalPath,
481+
sizeImage: sizeImage,
482+
avatarSizeRounded: avatarSizeRounded,
483+
etag: etag,
484+
account: account,
485+
options: options,
486+
taskHandler: taskHandler) { account, imageAvatar, imageOriginal, etag, responseData, error in
487+
continuation.resume(returning: (account, imageAvatar, imageOriginal, etag, responseData, error))
488+
}
489+
}
490+
}
491+
466492
func downloadContent(serverUrl: String,
467493
account: String,
468494
options: NKRequestOptions = NKRequestOptions(),
@@ -624,7 +650,6 @@ public extension NextcloudKit {
624650
}
625651
// MARK: -
626652

627-
628653
func getCapabilities(account: String,
629654
options: NKRequestOptions = NKRequestOptions(),
630655
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in },
@@ -653,6 +678,18 @@ public extension NextcloudKit {
653678
}
654679
}
655680

681+
func getCapabilitiesAsync(account: String,
682+
options: NKRequestOptions = NKRequestOptions(),
683+
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, responseData: AFDataResponse<Data?>?, error: NKError) {
684+
await withUnsafeContinuation { continuation in
685+
getCapabilities(account: account,
686+
options: options,
687+
taskHandler: taskHandler) { account, responseData, error in
688+
continuation.resume(returning: (account, responseData, error))
689+
}
690+
}
691+
}
692+
656693
// MARK: -
657694

658695
func getRemoteWipeStatus(serverUrl: String,

Sources/NextcloudKit/NextcloudKit+NCText.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ public extension NextcloudKit {
7070
}
7171
}
7272

73+
func textObtainEditorDetailsAsync(account: String,
74+
options: NKRequestOptions = NKRequestOptions(),
75+
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, editors: [NKEditorDetailsEditors], creators: [NKEditorDetailsCreators], responseData: AFDataResponse<Data>?, error: NKError) {
76+
await withUnsafeContinuation { continuation in
77+
textObtainEditorDetails(account: account,
78+
options: options,
79+
taskHandler: taskHandler) { account, editors, creators, responseData, error in
80+
continuation.resume(returning: (account, editors, creators, responseData, error))
81+
}
82+
}
83+
}
84+
7385
func textOpenFile(fileNamePath: String,
7486
fileId: String? = nil,
7587
editor: String,

Sources/NextcloudKit/NextcloudKit+UserStatus.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,20 @@ public extension NextcloudKit {
5858
}
5959
}
6060

61+
func getUserStatusAsync(userId: String? = nil,
62+
account: String,
63+
options: NKRequestOptions = NKRequestOptions(),
64+
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<Data>?, error: NKError) {
65+
await withUnsafeContinuation { continuation in
66+
getUserStatus(userId: userId,
67+
account: account,
68+
options: options,
69+
taskHandler: taskHandler) { account, clearAt, icon, message, messageId, messageIsPredefined, status, statusIsUserDefined, userId, responseData, error in
70+
continuation.resume(returning: (account, clearAt, icon, message, messageId, messageIsPredefined, status, statusIsUserDefined, userId, responseData, error))
71+
}
72+
}
73+
}
74+
6175
func setUserStatus(status: String,
6276
account: String,
6377
options: NKRequestOptions = NKRequestOptions(),

Sources/NextcloudKit/NextcloudKit+WebDAV.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,4 +629,20 @@ public extension NextcloudKit {
629629
}
630630
}
631631
}
632+
633+
func listingTrashAsync(filename: String? = nil,
634+
showHiddenFiles: Bool,
635+
account: String,
636+
options: NKRequestOptions = NKRequestOptions(),
637+
taskHandler: @escaping (_ task: URLSessionTask) -> Void = { _ in }) async -> (account: String, items: [NKTrash]?, responseData: AFDataResponse<Data>?, error: NKError) {
638+
await withUnsafeContinuation { continuation in
639+
listingTrash(filename: filename,
640+
showHiddenFiles: showHiddenFiles,
641+
account: account,
642+
options: options,
643+
taskHandler: taskHandler) { account, items, responseData, error in
644+
continuation.resume(returning: (account, items, responseData, error))
645+
}
646+
}
647+
}
632648
}

0 commit comments

Comments
 (0)