def getFutureInvoiceItems()

in src/main/scala/com/gu/invoicing/preview/Impl.scala [93:117]


  def getFutureInvoiceItems(
      invoiceOwnerAccountId: String,
      subscriptionName: String,
      targetDate: LocalDate,
  ): List[InvoiceItem] = {
    Http(s"$zuoraApiHost/v1/operations/billing-preview")
      .header("Authorization", s"Bearer $accessToken")
      .header("Content-Type", "application/json")
      .postData(
        s"""
           |{
           |    "accountId": "$invoiceOwnerAccountId",
           |    "targetDate": "${targetDate.plusDays(1)}",
           |    "assumeRenewal": "Autorenew"
           |}
           |""".stripMargin,
      )
      .method("POST")
      .asString
      .body
      .pipe(read[BillingPreview](_))
      .invoiceItems
      .filter(_.chargeAmount > 0.0)
      .filter(_.subscriptionName == subscriptionName)
  }