Merge pull request 'post new contact: process postalAddress' (#145) from TP-20250109_addcontact_putpostaladdress into master

Reviewed-on: #145
Reviewed-by: Michael Hoennig <michael.hoennig@hostsharing.net>
This commit is contained in:
Timotheus Pokorra 2025-01-16 13:57:05 +01:00
commit abddebd7c3
4 changed files with 26 additions and 2 deletions

View File

@ -131,6 +131,7 @@ public class HsOfficeContactController implements HsOfficeContactsApi {
@SuppressWarnings("unchecked")
final BiConsumer<HsOfficeContactInsertResource, HsOfficeContactRbacEntity> RESOURCE_TO_ENTITY_POSTMAPPER = (resource, entity) -> {
entity.putPostalAddress(from(resource.getPostalAddress()));
entity.putEmailAddresses(from(resource.getEmailAddresses()));
entity.putPhoneNumbers(from(resource.getPhoneNumbers()));
};

View File

@ -185,6 +185,7 @@ public class HsOfficeRelationController implements HsOfficeRelationsApi {
@SuppressWarnings("unchecked")
final BiConsumer<HsOfficeContactInsertResource, HsOfficeContactRealEntity> CONTACT_RESOURCE_TO_ENTITY_POSTMAPPER = (resource, entity) -> {
entity.putPostalAddress(from(resource.getPostalAddress()));
entity.putEmailAddresses(from(resource.getEmailAddresses()));
entity.putPhoneNumbers(from(resource.getPhoneNumbers()));
};

View File

@ -110,6 +110,14 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu
.body("""
{
"caption": "Temp Contact",
"postalAddress": {
"name": "Herr Test Contact",
"firm": "Test Contact GmbH",
"street": "Am Schieferbruch 3",
"zipcode": "12345",
"city": "Dachstadt",
"country": "Germany"
},
"emailAddresses": {
"main": "test@example.org"
}
@ -124,6 +132,8 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu
.body("uuid", isUuidValid())
.body("caption", is("Temp Contact"))
.body("emailAddresses", is(Map.of("main", "test@example.org")))
.body("postalAddress", hasEntry("name", "Herr Test Contact"))
.body("postalAddress", hasEntry("street", "Am Schieferbruch 3"))
.header("Location", startsWith("http://localhost"))
.extract().header("Location"); // @formatter:on

View File

@ -18,13 +18,14 @@ import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
import java.util.UUID;
import static net.hostsharing.hsadminng.rbac.test.IsValidUuidMatcher.isUuidValid;
import static net.hostsharing.hsadminng.test.JsonMatcher.lenientlyEquals;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.startsWith;
import static org.hamcrest.Matchers.*;
import static org.hamcrest.Matchers.hasEntry;
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
@ -291,6 +292,14 @@ class HsOfficeRelationControllerAcceptanceTest extends ContextBasedTestWithClean
},
"contact": {
"caption": "Temp Contact",
"postalAddress": {
"name": "Herr Test Contact",
"firm": "Test Contact GmbH",
"street": "Am Schieferbruch 3",
"zipcode": "12345",
"city": "Dachstadt",
"country": "Germany"
},
"emailAddresses": {
"main": "test@example.org"
}
@ -315,6 +324,9 @@ class HsOfficeRelationControllerAcceptanceTest extends ContextBasedTestWithClean
.body("holder.givenName", is("Temp"))
.body("holder.familyName", is("Person"))
.body("contact.caption", is("Temp Contact"))
.body("contact.emailAddresses", is(Map.of("main", "test@example.org")))
.body("contact.postalAddress", hasEntry("name", "Herr Test Contact"))
.body("contact.postalAddress", hasEntry("street", "Am Schieferbruch 3"))
.header("Location", startsWith("http://localhost"))
.extract().header("Location"); // @formatter:on