in src/main/scala/com/gu/invoicing/invoice/Program.scala [26:38]
private def invoicesByAccountId(accountId: String): Future[List[MmaInvoiceWithPayment]] = async {
val invoicesF = async(getInvoices(accountId))
val paymentsF = async(getPayments(accountId))
val paymentMethodsF = async(getPaymentMethods(accountId))
val positiveInvoices = await(invoicesF)
val payments = await(paymentsF)
val paymentMethods = await(paymentMethodsF)
val invoices = supportInvoicesWithMultipleSubscriptions(positiveInvoices)
val invoicesWithPayment = joinInvoicesWithPayment(invoices, payments, paymentMethods)
val mmaInvoicesWithPayment = transformToMmaExpectedFormat(invoicesWithPayment)
val multiSubTaggedInvoices = tagMultiSubInvoices(mmaInvoicesWithPayment)
multiSubTaggedInvoices
}