in src/main/scala/CancellationHelper.scala [20:36]
def processAccount(accountId: String) = {
val result = for {
account <- ZuoraService.getAccount(accountId)
accountSummary <- ZuoraService.getAccountSummary(accountId)
cancelOrSkip <- cancelIfApplicable(accountId, account.AutoPay, accountSummary.subscriptions)
} yield cancelOrSkip
result match {
case \/-(processedAccount) => processedAccount match {
case Cancelled => logSuccessfulResult(accountId)
case Skipped(reason) => logSkipResult(accountId, reason)
}
case -\/(error) => logFailureResult(accountId, error)
}
}