diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-03-14 23:28:54 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-03-14 23:30:06 +0100 |
commit | 7c4fe97357fb5b4782bc56d631b6d11d8ce78664 (patch) | |
tree | f29a0705c0f2b9e6892670f11dafb65d6cf0f516 /controller-server | |
parent | 9ad7ce1756ee6f5b3045b7f1aa0361d43ac6b80d (diff) |
Extend contact
Diffstat (limited to 'controller-server')
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); |