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