private def invoicesByAccountId()

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
  }