private def writeSubmissions()

in formstack-baton-requests/src/main/scala/com/gu/identity/formstackbatonrequests/services/DynamoUpdateService.scala [107:137]


  private def writeSubmissions(
                                form: Form,
                                minTimeUTC: LocalDateTime,
                                maxTimeUTC: Option[LocalDateTime],
                                submissionPage: Int = 1,
                                token: FormstackAccountToken
                              ): Either[Throwable, Unit] = {

    val writeSubmissionsPageFunction = writeSubmissionsPage(
      form: Form,
      minTimeUTC: LocalDateTime,
      maxTimeUTC: Option[LocalDateTime],
      token: FormstackAccountToken
    ) _

    val processedPages = writeSubmissionsPageFunction(submissionPage)

    processedPages match {
      case Right(pages) if submissionPage < pages =>
        (submissionPage + 1 to pages)
          .par
          .map(writeSubmissionsPageFunction(_))
          .toList
          .collectFirst {
            case Left(err) => Left(err)
          }.getOrElse(Right(()))

      case Right(_) => Right(())
      case Left(err) => Left(err)
    }
  }