in membership-attribute-service/app/services/AccountDetailsFromZuora.scala [44:75]
private def accountDetailsFromZuoraFor(userId: String, filter: OptionalSubscriptionsFilter)(implicit
logPrefix: LogPrefix,
): ListT[SimpleEitherT, AccountDetails] = {
for {
catalog <- ListTEither.singleRightT(futureCatalog(logPrefix))
contactAndSubscription <- allCurrentSubscriptions(userId, filter)
detailsResultsTriple <- ListTEither.single(getAccountDetailsParallel(contactAndSubscription))
(paymentDetails, accountSummary, effectiveCancellationDate) = detailsResultsTriple
country = accountSummary.billToContact.country
stripePublicKey = chooseStripe.publicKeyForCountry(country)
alertText <- ListTEither.singleRightT(alertText(accountSummary, contactAndSubscription.subscription, getPaymentMethod, catalog))
isAutoRenew = contactAndSubscription.subscription.autoRenew
} yield {
AccountDetails(
contactId = contactAndSubscription.contact.salesforceContactId,
regNumber = None,
email = accountSummary.billToContact.email,
deliveryAddress = Some(DeliveryAddress.fromContact(contactAndSubscription.contact)),
subscription = contactAndSubscription.subscription,
paymentDetails = paymentDetails,
billingCountry = accountSummary.billToContact.country,
stripePublicKey = stripePublicKey.key,
accountHasMissedRecentPayments =
accountHasMissedPayments(contactAndSubscription.subscription.accountId, accountSummary.invoices, accountSummary.payments),
safeToUpdatePaymentMethod = safeToAllowPaymentUpdate(contactAndSubscription.subscription.accountId, accountSummary.invoices),
isAutoRenew = isAutoRenew,
alertText = alertText,
accountId = accountSummary.id.get,
cancellationEffectiveDate = effectiveCancellationDate,
)
}
}