def toJobResultResponse()

in lib/zuora-reports/src/main/scala/com/gu/zuora/reports/GetJobResult.scala [24:44]


  def toJobResultResponse(
      aquaResponse: ClientFailableOp[AquaJobResponse],
      dryRun: Boolean,
      jobId: String,
      tries: Int,
  ): ClientFailableOp[JobResult] = {
    aquaResponse match {
      case ClientSuccess(AquaJobResponse(status, name, aquaBatches, _)) if status == "completed" =>
        val batches = aquaBatches.map(toBatch)
        if (batches.contains(None)) {
          GenericError(s"file Id missing from response : $aquaResponse")
        } else {
          ClientSuccess(Completed(name, jobId, batches.flatten, dryRun, tries))
        }

      case ClientSuccess(AquaJobResponse(status, name, _, _)) if pendingValues.contains(status) =>
        ClientSuccess(Pending(name, jobId, dryRun, tries))
      case ClientSuccess(zuoraResponse) => (GenericError(s"unexpected status in zuora response: $zuoraResponse"))
      case error: ClientFailure => error
    }
  }