diff options
author | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-10-27 15:01:20 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-10-27 15:02:50 +0200 |
commit | 173ca3509b0b60f6fffe8056a605f3ddec81cb53 (patch) | |
tree | 5435399279d29d13e0e8313cd87909ae0e79dc88 /controller-api/src/main | |
parent | 026305ca0de9f2b446e62d85c153df6324e0a0ff (diff) |
Validate tax-id on update in `/application/v4`
Diffstat (limited to 'controller-api/src/main')
2 files changed, 14 insertions, 0 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 e3b303c38d8..8b48c72f88e 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 @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.billing; import com.yahoo.config.provision.TenantName; +import com.yahoo.vespa.hosted.controller.tenant.TaxId; import java.math.BigDecimal; import java.time.LocalDate; @@ -132,4 +133,7 @@ public interface BillingController { /** Get the list of countries that are accepted */ AcceptedCountries getAcceptedCountries(); + /** Validation of tax id */ + void validateTaxId(TaxId id) throws IllegalArgumentException; + } 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 af33992a093..18dd339b4a1 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 @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.billing; import com.yahoo.config.provision.TenantName; +import com.yahoo.vespa.hosted.controller.tenant.TaxId; import java.math.BigDecimal; import java.time.Clock; @@ -218,6 +219,15 @@ public class MockBillingController implements BillingController { )); } + @Override + public void validateTaxId(TaxId id) throws IllegalArgumentException { + if (id.isEmpty() || id.isLegacy()) return; + if (!List.of("eu_vat", "no_vat").contains(id.type().value())) + throw new IllegalArgumentException("Unknown tax id type '%s'".formatted(id.type().value())); + if (!id.code().value().matches("\\w+")) + throw new IllegalArgumentException("Invalid tax id code '%s'".formatted(id.code().value())); + } + public void setTenants(List<TenantName> tenants) { this.tenants = tenants; |