private def localTempFile()

in lambda/src/main/scala/pricemigrationengine/handlers/CohortTableDatalakeExportHandler.scala [37:63]


  private def localTempFile() =
    ZIO.acquireRelease(
      ZIO
        .attempt(Files.createTempFile(new File(TempFileDirectory).toPath, "CohortTableExport", "csv"))
        .mapError(throwable =>
          CohortTableDatalakeExportFailure(s"Failed to create temp file in $TempFileDirectory: ${throwable.getMessage}")
        )
    )(path => ZIO.succeed(Try(Files.delete(path))))

  private def openOutputStream(path: Path) =
    ZIO.fromAutoCloseable(
      ZIO
        .attempt(Files.newOutputStream(path))
        .mapError(throwable =>
          CohortTableDatalakeExportFailure(s"Failed to write to temp files $path: ${throwable.getMessage}")
        )
    )

  private def print(
      cohortStream: ZStream[CohortTable, CohortFetchFailure, CohortItem],
      cohortSpec: CohortSpec,
      outputStream: OutputStream
  ) =
    ZIO.scoped(for {
      printer <- buildPrinter(outputStream)
      count <- cohortStream.mapZIO(printItem(cohortSpec, printer)).runCount
    } yield count)