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