summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-03-14 23:28:54 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2022-03-14 23:30:06 +0100
commit7c4fe97357fb5b4782bc56d631b6d11d8ce78664 (patch)
treef29a0705c0f2b9e6892670f11dafb65d6cf0f516 /controller-server
parent9ad7ce1756ee6f5b3045b7f1aa0361d43ac6b80d (diff)
Extend contact
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java11
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java7
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java4
3 files changed, 10 insertions, 12 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
index cf68ca034a7..00e38abcba7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
@@ -299,7 +299,7 @@ public class TenantSerializer {
}
private TenantContacts tenantContactsFrom(Inspector object) {
- List<TenantContacts.Contact<?>> contacts = SlimeUtils.entriesStream(object)
+ List<TenantContacts.Contact> contacts = SlimeUtils.entriesStream(object)
.map(this::readContact)
.collect(Collectors.toUnmodifiableList());
return new TenantContacts(contacts);
@@ -348,14 +348,14 @@ public class TenantSerializer {
return personLists;
}
- private void writeContact(TenantContacts.Contact<?> contact, Cursor cursor) {
+ private void writeContact(TenantContacts.Contact contact, Cursor cursor) {
cursor.setString("type", contact.type().value());
Cursor audiencesArray = cursor.setArray("audiences");
contact.audiences().forEach(audience -> audiencesArray.addString(toAudience(audience)));
var data = cursor.setObject("data");
switch (contact.type()) {
case EMAIL:
- var email = (TenantContacts.EmailContact) contact.data();
+ var email = (TenantContacts.EmailContact) contact;
data.setString("email", email.email());
return;
default:
@@ -363,7 +363,7 @@ public class TenantSerializer {
}
}
- private TenantContacts.Contact<?> readContact(Inspector inspector) {
+ private TenantContacts.Contact readContact(Inspector inspector) {
var type = TenantContacts.Type.from(inspector.field("type").asString())
.orElseThrow(() -> new RuntimeException("Unknown type: " + inspector.field("type").asString()));
var audiences = SlimeUtils.entriesStream(inspector.field("audiences"))
@@ -371,8 +371,7 @@ public class TenantSerializer {
.collect(Collectors.toUnmodifiableList());
switch (type) {
case EMAIL:
- var email = new TenantContacts.EmailContact(inspector.field("data").field("email").asString());
- return new TenantContacts.Contact<>(type, audiences, email);
+ return new TenantContacts.EmailContact(audiences, inspector.field("data").field("email").asString());
default:
throw new IllegalArgumentException("Serialization for contact type not implemented: " + type);
}
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 c55be24fcb4..f449a8d6bd2 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
@@ -544,7 +544,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
contact.audiences().forEach(audience -> audiencesArray.addString(toAudience(audience)));
switch (contact.type()) {
case EMAIL:
- var email = (TenantContacts.EmailContact) contact.data();
+ var email = (TenantContacts.EmailContact) contact;
contactCursor.setString("email", email.email());
return;
default:
@@ -678,12 +678,11 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
private TenantContacts updateTenantInfoContacts(Inspector insp, TenantContacts oldContacts) {
if (!insp.valid()) return oldContacts;
- List<TenantContacts.Contact<?>> contacts = SlimeUtils.entriesStream(insp).map(inspector -> {
- TenantContacts.EmailContact email = new TenantContacts.EmailContact(inspector.field("email").asString());
+ List<TenantContacts.Contact> contacts = SlimeUtils.entriesStream(insp).map(inspector -> {
List<TenantContacts.Audience> audiences = SlimeUtils.entriesStream(inspector.field("audiences"))
.map(audience -> fromAudience(audience.asString()))
.collect(Collectors.toUnmodifiableList());
- return new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, audiences, email);
+ return new TenantContacts.EmailContact(audiences, inspector.field("email").asString());
}).collect(toUnmodifiableList());
return new TenantContacts(contacts);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java
index d7a3be82968..e0d14f19f21 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java
@@ -175,8 +175,8 @@ public class TenantSerializerTest {
public void cloud_tenant_with_tenant_info_contacts() {
TenantInfo tenantInfo = TenantInfo.empty()
.withContacts(new TenantContacts(List.of(
- new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, List.of(TenantContacts.Audience.TENANT), new TenantContacts.EmailContact("email1@email.com")),
- new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, List.of(TenantContacts.Audience.TENANT, TenantContacts.Audience.NOTIFICATIONS), new TenantContacts.EmailContact("email2@email.com")))));
+ new TenantContacts.EmailContact(List.of(TenantContacts.Audience.TENANT), "email1@email.com"),
+ new TenantContacts.EmailContact(List.of(TenantContacts.Audience.TENANT, TenantContacts.Audience.NOTIFICATIONS), "email2@email.com"))));
Slime slime = new Slime();
Cursor parentCursor = slime.setObject();
serializer.toSlime(tenantInfo, parentCursor);