private def findConsentEmails()

in eventbrite-consents/src/main/scala/com/gu/identity/eventbriteconsents/services/ConsentsService.scala [27:53]


  private def findConsentEmails(
    lastRun: Instant,
    eventbriteCredentials: EventbriteCredentials,
    continuation: String = "",
    accumulator: Set[String] = Set.empty
  ): Set[String] = {

    val eventbriteResponse = eventbriteClient.findConsents(eventbriteCredentials, lastRun, continuation)

    val emailAddresses = for {
      attendee <- eventbriteResponse.attendeesList
      answer <- attendee.answersList if answer.isEventsAndMasterClassesAnswer
      profile <- attendee.profile
      email <- profile.email
    } yield email

    val accumulated = accumulator ++ emailAddresses.toSet

    eventbriteResponse.pagination.continuationToken match {
      case Some(continue) =>
        // Sleep to avoid rate limiting
        Thread.sleep(250)
        findConsentEmails(lastRun, eventbriteCredentials, continue, accumulated)
      case _ =>
        accumulated.map(_.toLowerCase)
    }
  }