field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

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 }