field_ios

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

TeraGeneratedRuntimeBackendSubmission.swift (5344B)


      1 import Foundation
      2 import TeraKitBindings
      3 
      4 extension TeraGeneratedRuntimeBackend {
      5   func renewSubmissionUpload(input: TeraSubmissionMediaRequest, renewal: TeraSubmissionUploadRenewal) async throws -> TeraSubmissionUploadJob {
      6     do {
      7       let value = try await runtime.submissionRenewNativeUpload(input: input.generatedValue, renewal: renewal.generatedValue)
      8       return try TeraGeneratedSubmission.upload(value, input: input)
      9     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     10   }
     11 
     12   func renewSubmissionMedia(input: TeraSubmissionMediaRequest, renewal: TeraSubmissionUploadRenewal) async throws -> TeraSubmissionStatus {
     13     do {
     14       let value = try await runtime.submissionRenewUploadMedia(input: input.generatedValue, renewal: renewal.generatedValue)
     15       return try TeraGeneratedSubmission.operation(value, expected: input.request)
     16     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     17   }
     18 
     19   func uploadSubmissionMedia(input: TeraSubmissionMediaRequest) async throws -> TeraSubmissionStatus {
     20     do {
     21       let value = try await runtime.submissionUploadMedia(input: input.generatedValue)
     22       return try TeraGeneratedSubmission.operation(value, expected: input.request)
     23     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     24   }
     25 
     26   func requestSubmissionStop(request: TeraSubmissionRequest) async throws -> TeraSubmissionStatus {
     27     do {
     28       let value = try await runtime.submissionRequestStop(request: request.generatedValue)
     29       return try TeraGeneratedSubmission.operation(value, expected: request)
     30     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     31   }
     32 
     33   func reconcileSubmissionLocal(request: TeraSubmissionRequest, context: TeraLocalNetwork) async throws -> TeraSubmissionStatus {
     34     do {
     35       let value = try await runtime.submissionReconcileLocal(request: request.generatedValue, context: context.generatedValue)
     36       return try TeraGeneratedSubmission.operation(value, expected: request)
     37     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     38   }
     39 
     40   func prepareSubmission(request: TeraSubmissionRequest, media: [TeraPreparedMediaHandle]) async throws -> TeraSubmissionStatus {
     41     do {
     42       let result = try await runtime.submissionPrepare(request: request.generatedValue, media: media.map(\.generatedValue))
     43       return try TeraGeneratedSubmission.operation(result, expected: request)
     44     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     45   }
     46 
     47   func recoverSubmission(request: TeraSubmissionRequest) async throws -> TeraSubmissionStatus? {
     48     do {
     49       let value = try await runtime.submissionRecover(request: request.generatedValue)
     50       return try value.map { try TeraGeneratedSubmission.operation($0, expected: request) }
     51     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     52   }
     53 
     54   func submissionStatus(request: TeraSubmissionRequest) async throws -> TeraSubmissionStatus {
     55     do {
     56       let value = try await runtime.submissionStatus(request: request.generatedValue)
     57       return try TeraGeneratedSubmission.operation(value, expected: request)
     58     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     59   }
     60 
     61   func advanceSubmission(request: TeraSubmissionRequest, expectedRevision: UInt64) async throws -> TeraSubmissionStatus {
     62     do {
     63       let value = try await runtime.submissionAdvance(request: request.generatedValue, expectedRevision: expectedRevision)
     64       return try TeraGeneratedSubmission.operation(value, expected: request)
     65     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     66   }
     67 
     68   func listSubmissions(scope: TeraComposerScope, limit: UInt16, cursor: String?) async throws -> TeraSubmissionPage {
     69     do {
     70       let value = try await runtime.submissionPage(scope: scope.generatedValue, limit: limit, cursor: cursor)
     71       return try TeraGeneratedSubmission.page(value, scope: scope, limit: limit)
     72     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     73   }
     74 
     75   func prepareSubmissionUpload(input: TeraSubmissionMediaRequest) async throws -> TeraSubmissionUploadJob {
     76     do {
     77       let value = try await runtime.submissionPrepareUpload(input: input.generatedValue)
     78       return try TeraGeneratedSubmission.upload(value, input: input)
     79     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     80   }
     81 
     82   func completeSubmissionUpload(input: TeraSubmissionMediaRequest, response: TeraAddBackgroundUploadReceipt) async throws -> TeraSubmissionStatus {
     83     do {
     84       let current = try await submissionStatus(request: input.request)
     85       guard response.draftID == current.intentID, response.expectedRevision == input.expectedRevision,
     86             current.revision == input.expectedRevision else { throw TeraGeneratedSubmission.mismatch() }
     87       let value = try await runtime.submissionCompleteUpload(input: input.generatedValue, response: FfiSubmissionUploadResponse(
     88         schemaVersion: 1, statusCode: response.statusCode, mediaType: response.mediaType,
     89         contentEncoding: response.contentEncoding, body: response.body
     90       ))
     91       return try TeraGeneratedSubmission.operation(value, expected: input.request)
     92     } catch { throw TeraGeneratedRuntimeFailure.from(error) }
     93   }
     94 }
     95 
     96 extension TeraSubmissionUploadRenewal {
     97   var generatedValue: FfiSubmissionUploadRenewal {
     98     FfiSubmissionUploadRenewal(priorRevision: priorRevision, priorAttempt: priorAttempt, nativeFailed: nativeFailed)
     99   }
    100 }