summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@vespa.ai>2023-10-31 11:45:59 +0100
committerØyvind Grønnesby <oyving@vespa.ai>2023-10-31 11:45:59 +0100
commitc05faaedd1e469662ad3bb3b9796316efc9c4135 (patch)
tree309569fcaca82de7421d293cb722da912c22c7c2 /controller-server/src/main
parent2f558270cc3bb6ebe2567c2e5c5a9ccb5057c032 (diff)
Expose additional items together with summaries
Diffstat (limited to 'controller-server/src/main')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerV2.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerV2.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerV2.java
index d26bf93334f..7f3ff06ce88 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerV2.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerV2.java
@@ -42,12 +42,10 @@ import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Comparator;
-import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.logging.Logger;
-import java.util.stream.Collectors;
/**
* @author ogronnesby
@@ -450,7 +448,7 @@ public class BillingApiHandlerV2 extends RestApiRequestHandler<BillingApiHandler
var response = bill.summarizeBy(requestKeys);
var slime = new Slime();
- toSlime(slime.setObject(), bill, response);
+ toSlime(slime.setObject(), bill, response, bill.lineItems().stream().filter(Bill.LineItem::isAdditional).toList());
return slime;
}
@@ -596,12 +594,21 @@ public class BillingApiHandlerV2 extends RestApiRequestHandler<BillingApiHandler
}
}
- private void toSlime(Cursor slime, Bill bill, Map<Bill.ItemKey, Bill.ItemSummary> summaries) {
+ private void toSlime(Cursor slime, Bill bill, Map<Bill.ItemKey, Bill.ItemSummary> summaries, List<Bill.LineItem> additional) {
slime.setString("id", bill.id().value());
var summaryCursor = slime.setArray("summary");
summaries.forEach((key, summary) -> {
toSlime(summaryCursor.addObject(), key, summary);
});
+ var additionalCursor = slime.setArray("additional");
+ additional.forEach(item -> {
+ additionalSummaryToSlime(additionalCursor, item);
+ });
+ }
+
+ private void additionalSummaryToSlime(Cursor slime, Bill.LineItem item) {
+ slime.setString("description", item.description());
+ slime.setString("amount", item.amount().toPlainString());
}
private void toSlime(Cursor slime, Bill.ItemKey key, Bill.ItemSummary summary) {