diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2020-07-01 12:33:44 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2020-07-01 12:33:44 +0200 |
commit | 5deb539bdb7a2aef53a0741bdc29cf0ba6b96dc8 (patch) | |
tree | fe8bbcf3eb4678830dfe57312a57e6cdd3f3a164 /controller-api | |
parent | 2c737b6e2e1ae50159da81c6d74b11a013290c6d (diff) |
Add PlanResult, wrapping optional error message
Diffstat (limited to 'controller-api')
3 files changed, 38 insertions, 3 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java index d9290b8d685..24864c03530 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java @@ -18,7 +18,7 @@ public interface BillingController { /** * @return String containing error message if something went wrong. Empty otherwise */ - Optional<String> setPlan(TenantName tenant, PlanId planId, boolean hasApplications); + PlanResult setPlan(TenantName tenant, PlanId planId, boolean hasApplications); Invoice.Id createInvoiceForPeriod(TenantName tenant, ZonedDateTime startTime, ZonedDateTime endTime, String agent); diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java index ac6ae7081ab..4f367d6498e 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java @@ -30,9 +30,9 @@ public class MockBillingController implements BillingController { } @Override - public Optional<String> setPlan(TenantName tenant, PlanId planId, boolean hasApplications) { + public PlanResult setPlan(TenantName tenant, PlanId planId, boolean hasApplications) { plans.put(tenant, planId); - return Optional.empty(); + return PlanResult.success(); } @Override diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanResult.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanResult.java new file mode 100644 index 00000000000..a4803ccde64 --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanResult.java @@ -0,0 +1,35 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.controller.api.integration.billing; + +import java.util.Optional; + +/** + * Result of {@link BillingController#setPlan} + * + * @author olaa + */ +public class PlanResult { + + private final Optional<String> errorMessage; + + private PlanResult(Optional<String> errorMessage) { + this.errorMessage = errorMessage; + } + + public static PlanResult success() { + return new PlanResult(Optional.empty()); + } + + public static PlanResult error(String errorMessage) { + return new PlanResult(Optional.of(errorMessage)); + } + + public boolean isSuccess() { + return errorMessage.isEmpty(); + } + + public Optional<String> getErrorMessage() { + return errorMessage; + } + +} |