TeraGeneratedRecoveryCompletion.swift (1551B)
1 import TeraKitBindings 2 3 extension TeraGeneratedRuntimeBackend { 4 func recoverNativeUpload(_ receipt: TeraRecoveryUploadReceipt, media: TeraPreparedMediaHandle) async throws -> TeraRecoveryCompletionReceipt { 5 do { 6 guard media.media == receipt.media else { throw TeraComposerAcknowledgment.unconfirmed } 7 let response = receipt.response 8 let value = try await runtime.recoverNativeUpload(receipt: FfiRecoveryUploadReceipt( 9 schemaVersion: 1, parent: receipt.parent, revision: receipt.revision, attempt: receipt.attempt, 10 uploadUrl: receipt.uploadURL, sha256: receipt.media.sha256, mediaType: receipt.media.mediaType, 11 byteSize: receipt.media.byteSize, response: FfiSubmissionUploadResponse( 12 schemaVersion: 1, statusCode: response.statusCode, mediaType: response.mediaType, 13 contentEncoding: response.contentEncoding, body: response.body 14 ) 15 ), media: media.generatedValue) 16 guard value.schemaVersion == 1 else { throw TeraComposerAcknowledgment.unconfirmed } 17 let result = TeraRecoveryCompletionReceipt(parent: value.parent, attempt: value.attempt, 18 canonicalURL: value.canonicalUrl, sha256: value.sha256, 19 mediaType: value.mediaType, byteSize: value.byteSize, 20 verifiedAtUnixMS: value.verifiedAtUnixMs) 21 try result.confirm(receipt) 22 return result 23 } catch { throw TeraGeneratedRuntimeFailure.from(error) } 24 } 25 }