@@ -38,10 +38,9 @@ public extension NextcloudKit {
3838 requestHandler: @escaping ( _ request: UploadRequest ) -> Void = { _ in } ,
3939 taskHandler: @escaping ( _ task: URLSessionTask ) -> Void = { _ in } ,
4040 progressHandler: @escaping ( _ progress: Progress ) -> Void = { _ in } ,
41- completionHandler: @escaping ( _ account: String , _ ocId: String ? , _ etag: String ? , _ date: Date ? , _ size: Int64 , _ headers : [ AnyHashable : Any ] ? , _ nkError: NKError ) -> Void ) {
41+ completionHandler: @escaping ( _ account: String , _ ocId: String ? , _ etag: String ? , _ date: Date ? , _ size: Int64 , _ response : AFDataResponse < Data > ? , _ nkError: NKError ) -> Void ) {
4242 var convertible : URLConvertible ?
4343 var uploadedSize : Int64 = 0
44- var uploadCompleted = false
4544
4645 if serverUrlFileName is URL {
4746 convertible = serverUrlFileName as? URLConvertible
@@ -72,11 +71,9 @@ public extension NextcloudKit {
7271 options. queue. async { taskHandler ( task) }
7372 } ) . uploadProgress { progress in
7473 uploadedSize = progress. totalUnitCount
75- uploadCompleted = progress. fractionCompleted == 1.0
7674 options. queue. async { progressHandler ( progress) }
7775 } . responseData ( queue: self . nkCommonInstance. backgroundQueue) { response in
7876 var ocId : String ? , etag : String ? , date : Date ?
79- var result : NKError
8077
8178 if self . nkCommonInstance. findHeader ( " oc-fileid " , allHeaderFields: response. response? . allHeaderFields) != nil {
8279 ocId = self . nkCommonInstance. findHeader ( " oc-fileid " , allHeaderFields: response. response? . allHeaderFields)
@@ -95,19 +92,14 @@ public extension NextcloudKit {
9592 date = dateRaw. parsedDate ( using: " EEE, dd MMM y HH:mm:ss zzz " )
9693 }
9794
98- if !uploadCompleted {
99- nkLog ( error: " Upload incomplete: only \( uploadedSize) bytes sent. " )
100- result = . uploadIncomplete
101- } else {
102- result = self . evaluateResponse ( response)
103- }
104-
10595 options. queue. async {
106- completionHandler ( account, ocId, etag, date, uploadedSize, response. response ? . allHeaderFields , result )
96+ completionHandler ( account, ocId, etag, date, uploadedSize, response, self . evaluateResponse ( response ) )
10797 }
10898 }
10999
110- options. queue. async { requestHandler ( request) }
100+ options. queue. async {
101+ requestHandler ( request)
102+ }
111103 }
112104
113105 /// Asynchronously uploads a file to the Nextcloud server.
@@ -148,7 +140,7 @@ public extension NextcloudKit {
148140 etag: String ? ,
149141 date: Date ? ,
150142 size: Int64 ,
151- headers : [ AnyHashable : Any ] ? ,
143+ response : AFDataResponse < Data > ? ,
152144 error: NKError
153145 ) {
154146 await withCheckedContinuation { continuation in
@@ -161,14 +153,14 @@ public extension NextcloudKit {
161153 options: options,
162154 requestHandler: requestHandler,
163155 taskHandler: taskHandler,
164- progressHandler: progressHandler) { account, ocId, etag, date, size, headers , error in
156+ progressHandler: progressHandler) { account, ocId, etag, date, size, response , error in
165157 continuation. resume ( returning: (
166158 account: account,
167159 ocId: ocId,
168160 etag: etag,
169161 date: date,
170162 size: size,
171- headers : headers ,
163+ response : response ,
172164 error: error
173165 ) )
174166 }
@@ -355,7 +347,7 @@ public extension NextcloudKit {
355347 }
356348
357349 guard uploadNKError == . success else {
358- return completion ( account, filesChunkOutput, nil , . errorChunkFileUpload )
350+ return completion ( account, filesChunkOutput, nil , uploadNKError )
359351 }
360352
361353 // Assemble the chunks
0 commit comments