in lambda/src/main/scala/pricemigrationengine/handlers/NotificationHandler.scala [45:71]
def main(
cohortSpec: CohortSpec
): ZIO[Logging with CohortTable with SalesforceClient with EmailSender with Zuora, Failure, HandlerOutput] = {
for {
today <- Clock.currentDateTime.map(_.toLocalDate)
count <- CohortTable
.fetch(SalesforcePriceRiseCreationComplete, Some(today.plusDays(maxLeadTime(cohortSpec))))
.take(batchSize)
.mapZIO(item =>
MigrationType(cohortSpec) match {
case SupporterPlus2024 => {
for {
subscription <- Zuora.fetchSubscription(item.subscriptionName)
_ <-
if (SupporterPlus2024Migration.isUnderActiveCancellationSavePolicy(subscription, today)) {
updateItemToDoNotProcessUntil(item, subscription)
} else {
sendNotification(cohortSpec)(item, today)
}
} yield ()
}
case _ => sendNotification(cohortSpec)(item, today)
}
)
.runCount
} yield HandlerOutput(isComplete = count < batchSize)
}