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
}
}