summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@vespa.ai>2023-10-27 15:01:20 +0200
committerBjørn Christian Seime <bjorncs@vespa.ai>2023-10-27 15:02:50 +0200
commit173ca3509b0b60f6fffe8056a605f3ddec81cb53 (patch)
tree5435399279d29d13e0e8313cd87909ae0e79dc88 /controller-server
parent026305ca0de9f2b446e62d85c153df6324e0a0ff (diff)
Validate tax-id on update in `/application/v4`
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java10
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java4
2 files changed, 8 insertions, 6 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index e4da2e4e92b..078c27f5d00 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -716,7 +716,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
var mergedContact = updateBillingContact(inspector.field("contact"), cloudTenant.name(), contact);
var mergedAddress = updateTenantInfoAddress(inspector.field("address"), billing.address());
- var mergedTaxId = updateTaxId(inspector.field("taxId"), billing.getTaxId());
+ var mergedTaxId = updateAndValidateTaxId(inspector.field("taxId"), billing.getTaxId());
var mergedPurchaseOrder = optional("purchaseOrder", inspector).map(PurchaseOrder::new).orElse(billing.getPurchaseOrder());
var mergedInvoiceEmail = optional("invoiceEmail", inspector).map(mail -> new Email(mail, false)).orElse(billing.getInvoiceEmail());
@@ -922,10 +922,12 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
throw new IllegalArgumentException("All address fields must be set");
}
- private TaxId updateTaxId(Inspector insp, TaxId old) {
+ private TaxId updateAndValidateTaxId(Inspector insp, TaxId old) {
if (!insp.valid()) return old;
- return new TaxId(getString(insp.field("type"), old.type().value()),
+ var taxId = new TaxId(getString(insp.field("type"), old.type().value()),
getString(insp.field("code"), old.code().value()));
+ controller.serviceRegistry().billingController().validateTaxId(taxId);
+ return taxId;
}
private TenantContact updateBillingContact(Inspector insp, TenantName tenantName, TenantContact oldContact) {
@@ -953,7 +955,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
return TenantBilling.empty()
.withContact(updateBillingContact(insp, tenantName, oldContact.contact()))
.withAddress(updateTenantInfoAddress(insp.field("address"), oldContact.address()))
- .withTaxId(updateTaxId(insp.field("taxId"), oldContact.getTaxId()))
+ .withTaxId(updateAndValidateTaxId(insp.field("taxId"), oldContact.getTaxId()))
.withPurchaseOrder(purchaseOrder)
.withInvoiceEmail(invoiceEmail);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
index c2c9939c37a..1ad88675169 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
@@ -125,7 +125,7 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
"email":"foo@example",
"phone":"phone"
},
- "taxId":{"type": "no_mva", "code": "123456789MVA"},
+ "taxId":{"type": "no_vat", "code": "123456789MVA"},
"purchaseOrder":"PO9001",
"invoiceEmail":"billing@mycomp.any",
"address": {
@@ -151,7 +151,7 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
"phone":"phone"
},
"taxId": {
- "type": "no_mva",
+ "type": "no_vat",
"code": "123456789MVA"
},
"purchaseOrder":"PO9001",