def processAccount()

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

  }