diff options
author | Øyvind Grønnesby <oyving@verizonmedia.com> | 2022-01-24 13:59:04 +0100 |
---|---|---|
committer | Øyvind Grønnesby <oyving@verizonmedia.com> | 2022-01-24 14:01:06 +0100 |
commit | 545c03abbc3d3f1cb74eb6606d259531efebfe99 (patch) | |
tree | 8dfed383e5f30a4c911b7d5a2cd235d906576a13 /controller-server | |
parent | d4c1a852168e39f7f1261b594109ac8277a364b4 (diff) |
name -> contactName, email -> contactEmail for validation
Diffstat (limited to 'controller-server')
2 files changed, 19 insertions, 16 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 2f8a014bfce..bca209c51e4 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 @@ -473,16 +473,16 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { .withBillingContact(updateTenantInfoBillingContact(insp.field("billingContact"), oldInfo.billingContact())); // Assert that we have a valid tenant info - if (mergedInfo.name().isBlank()) { - return new MessageResponse(400, "'name' cannot be empty"); + if (mergedInfo.contactName().isBlank()) { + return new MessageResponse(400, "'contactName' cannot be empty"); } - if (mergedInfo.email().isBlank()) { - return new MessageResponse(400, "'email' cannot be empty"); + if (mergedInfo.contactEmail().isBlank()) { + return new MessageResponse(400, "'contactEmail' cannot be empty"); } - if (! mergedInfo.email().contains("@")) { + if (! mergedInfo.contactEmail().contains("@")) { // email address validation is notoriously hard - we should probably just try to send a // verification email to this address. checking for @ is a simple best-effort. - return new MessageResponse(400, "'email' needs to be an email address"); + return new MessageResponse(400, "'contactEmail' needs to be an email address"); } // Store changes 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 67e20210004..63881e4eb7b 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 @@ -6,6 +6,8 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.TenantName; +import com.yahoo.slime.Slime; +import com.yahoo.slime.SlimeUtils; import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.flags.PermanentFlags; import com.yahoo.vespa.hosted.controller.ControllerTester; @@ -30,6 +32,7 @@ import org.junit.Test; import javax.ws.rs.ForbiddenException; import java.io.File; +import java.io.IOException; import java.util.Collections; import java.util.Optional; import java.util.Set; @@ -85,7 +88,7 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest { .roles(Set.of(Role.reader(tenantName))); tester.assertResponse(infoRequest, "{}", 200); - String partialInfo = "{\"name\":\"newName\", \"email\": \"foo@example.com\", \"billingContact\":{\"name\":\"billingName\"}}"; + String partialInfo = "{\"contactName\":\"newName\", \"contactEmail\": \"foo@example.com\", \"billingContact\":{\"name\":\"billingName\"}}"; var postPartial = request("/application/v4/tenant/scoober/info", PUT) @@ -94,11 +97,11 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest { tester.assertResponse(postPartial, "{\"message\":\"Tenant info updated\"}", 200); // Read back the updated info - tester.assertResponse(infoRequest, "{\"name\":\"newName\",\"email\":\"foo@example.com\",\"website\":\"\",\"invoiceEmail\":\"\",\"contactName\":\"\",\"contactEmail\":\"\",\"billingContact\":{\"name\":\"billingName\",\"email\":\"\",\"phone\":\"\"}}", 200); + tester.assertResponse(infoRequest, "{\"name\":\"\",\"email\":\"\",\"website\":\"\",\"invoiceEmail\":\"\",\"contactName\":\"newName\",\"contactEmail\":\"foo@example.com\",\"billingContact\":{\"name\":\"billingName\",\"email\":\"\",\"phone\":\"\"}}", 200); String fullAddress = "{\"addressLines\":\"addressLines\",\"postalCodeOrZip\":\"postalCodeOrZip\",\"city\":\"city\",\"stateRegionProvince\":\"stateRegionProvince\",\"country\":\"country\"}"; String fullBillingContact = "{\"name\":\"name\",\"email\":\"email\",\"phone\":\"phone\",\"address\":" + fullAddress + "}"; - String fullInfo = "{\"name\":\"name\",\"email\":\"foo@example\",\"website\":\"webSite\",\"invoiceEmail\":\"invoiceEmail\",\"contactName\":\"contactName\",\"contactEmail\":\"contanctEmail\",\"address\":" + fullAddress + ",\"billingContact\":" + fullBillingContact + "}"; + String fullInfo = "{\"name\":\"name\",\"email\":\"foo@example\",\"website\":\"webSite\",\"invoiceEmail\":\"invoiceEmail\",\"contactName\":\"contactName\",\"contactEmail\":\"contact@example.com\",\"address\":" + fullAddress + ",\"billingContact\":" + fullBillingContact + "}"; // Now set all fields var postFull = @@ -120,27 +123,27 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest { tester.assertResponse(infoRequest, "{}", 200); // name needs to be present and not blank - var partialInfoMissingName = "{\"name\": \" \"}"; + var partialInfoMissingName = "{\"contactName\": \" \"}"; var missingNameResponse = request("/application/v4/tenant/scoober/info", PUT) .data(partialInfoMissingName) .roles(Set.of(Role.administrator(tenantName))); - tester.assertResponse(missingNameResponse, "{\"message\":\"'name' cannot be empty\"}", 400); + tester.assertResponse(missingNameResponse, "{\"message\":\"'contactName' cannot be empty\"}", 400); // email needs to be present, not blank, and contain an @ - var partialInfoMissingEmail = "{\"name\": \"Scoober Rentals Inc.\", \"email\": \" \"}"; + var partialInfoMissingEmail = "{\"contactName\": \"Scoober Rentals Inc.\", \"contactEmail\": \" \"}"; var missingEmailResponse = request("/application/v4/tenant/scoober/info", PUT) .data(partialInfoMissingEmail) .roles(Set.of(Role.administrator(tenantName))); - tester.assertResponse(missingEmailResponse, "{\"message\":\"'email' cannot be empty\"}", 400); + tester.assertResponse(missingEmailResponse, "{\"message\":\"'contactEmail' cannot be empty\"}", 400); - var partialInfoBadEmail = "{\"name\": \"Scoober Rentals Inc.\", \"email\": \"somethingweird\"}"; + var partialInfoBadEmail = "{\"contactName\": \"Scoober Rentals Inc.\", \"contactEmail\": \"somethingweird\"}"; var badEmailResponse = request("/application/v4/tenant/scoober/info", PUT) .data(partialInfoBadEmail) .roles(Set.of(Role.administrator(tenantName))); - tester.assertResponse(badEmailResponse, "{\"message\":\"'email' needs to be an email address\"}", 400); + tester.assertResponse(badEmailResponse, "{\"message\":\"'contactEmail' needs to be an email address\"}", 400); // updating a tenant that already has the fields set works - var basicInfo = "{\"name\": \"Scoober Rentals Inc.\", \"email\": \"foo@example.com\"}"; + var basicInfo = "{\"contactName\": \"Scoober Rentals Inc.\", \"contactEmail\": \"foo@example.com\"}"; var basicInfoResponse = request("/application/v4/tenant/scoober/info", PUT) .data(basicInfo) .roles(Set.of(Role.administrator(tenantName))); |