Skip to content

Commit 6ebfab7

Browse files
committed
fixes:
- invalid person contact fields set (should have been contactInformation - non-copied request fields on reprocessing
1 parent ad614c3 commit 6ebfab7

5 files changed

Lines changed: 27 additions & 28 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/ExternalMessageFacadeEjb.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@
8282
import de.symeda.sormas.api.externalmessage.NewMessagesState;
8383
import de.symeda.sormas.api.externalmessage.labmessage.SampleReportDto;
8484
import de.symeda.sormas.api.externalmessage.processing.ExternalMessageProcessingResult;
85+
import de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseRequest;
86+
import de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseWrapper;
8587
import de.symeda.sormas.api.externalmessage.survey.ExternalSurveyResponseData;
8688
import de.symeda.sormas.api.externalmessage.survey.SurveyAsExternalMessageAdapterFacade;
8789
import de.symeda.sormas.api.feature.FeatureType;
@@ -974,25 +976,22 @@ public ExternalMessageDto getForSurveillanceReport(SurveillanceReportReferenceDt
974976
@RightsAllowed(UserRight._EXTERNAL_MESSAGE_SURVEY_RESPONSE_PROCESS)
975977
public ExternalMessageDto reprocessSurveyResponse(String uuid, java.util.Map<String, Object> correctedDictionary) {
976978
ExternalMessageDto externalMessage = getByUuid(uuid);
977-
de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseRequest latestRequest =
978-
externalMessage.getSurveyResponseData().getLatest().getRequest();
979-
980-
de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseRequest correctedRequest =
981-
new de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseRequest().setToken(latestRequest.getToken())
982-
.setExternalSurveyId(latestRequest.getExternalSurveyId())
983-
.setExternalRespondentId(latestRequest.getExternalRespondentId())
984-
.setResponseReceivedDate(latestRequest.getResponseReceivedDate())
985-
.setReplacementStrategy(latestRequest.getReplacementStrategy())
986-
.setEmptyValueBehavior(latestRequest.getEmptyValueBehavior())
987-
.setOrigin(latestRequest.getOrigin())
988-
.setInputLanguages(latestRequest.getInputLanguages())
989-
.setAllowFallbackValues(latestRequest.isAllowFallbackValues())
990-
.setSkipIfAlreadyProcessed(false)
991-
.setPatchedInCaseOfFailures(true)
992-
.setPatchDictionary(correctedDictionary);
993-
994-
de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseWrapper updatedWrapper =
995-
new de.symeda.sormas.api.externalmessage.survey.ExternalMessageSurveyResponseWrapper().setRequest(correctedRequest);
979+
ExternalMessageSurveyResponseRequest latestRequest = externalMessage.getSurveyResponseData().getLatest().getRequest();
980+
981+
ExternalMessageSurveyResponseRequest correctedRequest = new ExternalMessageSurveyResponseRequest().setToken(latestRequest.getToken())
982+
.setExternalSurveyId(latestRequest.getExternalSurveyId())
983+
.setExternalRespondentId(latestRequest.getExternalRespondentId())
984+
.setResponseReceivedDate(latestRequest.getResponseReceivedDate())
985+
.setReplacementStrategy(latestRequest.getReplacementStrategy())
986+
.setEmptyValueBehavior(latestRequest.getEmptyValueBehavior())
987+
.setOrigin(latestRequest.getOrigin())
988+
.setInputLanguages(latestRequest.getInputLanguages())
989+
.setAllowFallbackValues(latestRequest.isAllowFallbackValues())
990+
.setSkipIfAlreadyProcessed(latestRequest.isSkipIfAlreadyProcessed())
991+
.setPatchedInCaseOfFailures(latestRequest.isPatchedInCaseOfFailures())
992+
.setPatchDictionary(correctedDictionary);
993+
994+
ExternalMessageSurveyResponseWrapper updatedWrapper = new ExternalMessageSurveyResponseWrapper().setRequest(correctedRequest);
996995
externalMessage.getSurveyResponseData().setUpdated(updatedWrapper);
997996

998997
try {

sormas-backend/src/main/java/de/symeda/sormas/backend/patch/mapping/impl/fieldmapper/PersonContactDetailsFieldMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ private PersonContactDetailDto buildGenericContactDetail(FieldPatchRequest reque
7878
PersonContactDetailDto detail = new PersonContactDetailDto();
7979
detail.setUuid(DataHelper.createUuid());
8080
detail.setPerson(personDto.toReference());
81-
detail.setDetails((String) request.getValue());
81+
detail.setContactInformation((String) request.getValue());
8282
detail.setAdditionalInformation(request.getOrigin());
8383

8484
return detail;
@@ -101,7 +101,7 @@ private PersonContactDetailDto buildEmailContactDetail(FieldPatchRequest request
101101

102102
@Override
103103
public Set<String> supportedFields() {
104-
return Stream.of(PersonContactDetailDto.PHONE_NUMBER_TYPE, PersonContactDetailDto.DETAILS)
104+
return Stream.of(PersonContactDetailDto.PHONE_NUMBER_TYPE, PersonContactDetailDto.CONTACT_INFORMATION)
105105
.map(suffix -> PersonDto.I18N_PREFIX + PATH_SEPARATOR + PersonDto.PERSON_CONTACT_DETAILS + PATH_SEPARATOR + suffix)
106106
.collect(Collectors.toSet());
107107
}

sormas-backend/src/test/java/de/symeda/sormas/backend/patch/mapping/impl/fieldmapper/PersonContactDetailsFieldMapperTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class PersonContactDetailsFieldMapperTest extends AbstractUnitTest {
3030
@Test
3131
void supportedFields_containsPhoneNumberTypeAndDetails() {
3232
// PREPARE
33-
Set<String> expected = Set.of("Person.personContactDetails.details, Person.personContactDetails.phoneNumberType");
33+
Set<String> expected = Set.of("Person.personContactDetails.contactInformation", "Person.personContactDetails.phoneNumberType");
3434

3535
// EXECUTE
3636
Set<String> actual = victim.supportedFields();
@@ -75,7 +75,7 @@ void map_phoneField_contactDetailNotPresent_addsPhoneContactDetail() {
7575
assertEquals(1, personDto.getPersonContactDetails().size());
7676
PersonContactDetailDto added = personDto.getPersonContactDetails().get(0);
7777
assertEquals(PersonContactDetailType.PHONE, added.getPersonContactDetailType());
78-
assertEquals("0123456789", added.getDetails());
78+
assertEquals("0123456789", added.getContactInformation());
7979
assertEquals(PhoneNumberType.OTHER, added.getPhoneNumberType());
8080
assertEquals("someOrigin", added.getAdditionalInformation());
8181
}
@@ -147,7 +147,7 @@ void map_emailField_contactDetailNotPresent_addsEmailContactDetail() {
147147
assertEquals(1, personDto.getPersonContactDetails().size());
148148
PersonContactDetailDto added = personDto.getPersonContactDetails().get(0);
149149
assertEquals(PersonContactDetailType.EMAIL, added.getPersonContactDetailType());
150-
assertEquals("test@example.com", added.getDetails());
150+
assertEquals("test@example.com", added.getContactInformation());
151151
assertEquals("someOrigin", added.getAdditionalInformation());
152152
}
153153

sormas-backend/src/test/java/de/symeda/sormas/patch/DataPatcherImplTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ void patch_noErrorsReplaceAlwaysPersonContactDetails() {
131131
.setReplacementStrategy(DataReplacementStrategy.ALWAYS)
132132
.setPatchDictionary(
133133
Map.of(
134-
"Person.personContactDetails.details",
134+
"Person.personContactDetails.contactInformation",
135135
newEmail,
136136

137137
"Person.personContactDetails.phoneNumberType",
@@ -157,14 +157,14 @@ void patch_noErrorsReplaceAlwaysPersonContactDetails() {
157157
contactDetailsStreamProvider.get()
158158
.anyMatch(
159159
contactDetail -> contactDetail.getPersonContactDetailType() == PersonContactDetailType.PHONE
160-
&& newPhoneNumber.equals(contactDetail.getDetails())
160+
&& newPhoneNumber.equals(contactDetail.getContactInformation())
161161
&& contactDetail.getPhoneNumberType() == PhoneNumberType.OTHER)),
162162

163163
() -> Assertions.assertTrue(
164164
contactDetailsStreamProvider.get()
165165
.anyMatch(
166166
contactDetail -> contactDetail.getPersonContactDetailType() == PersonContactDetailType.EMAIL
167-
&& newEmail.equals(contactDetail.getDetails()))));
167+
&& newEmail.equals(contactDetail.getContactInformation()))));
168168
}
169169

170170
@ParameterizedTest

sormas-ui/src/main/java/de/symeda/sormas/ui/externalmessage/surveyresponse/SurveyResponseDetailsWindow.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public SurveyResponseDetailsWindow(ExternalMessageDto externalMessage, Runnable
6161
VerticalLayout layout = new VerticalLayout();
6262
layout.setMargin(true);
6363
layout.setSpacing(true);
64-
layout.setWidth(800, Sizeable.Unit.PIXELS);
64+
layout.setWidth(100, Sizeable.Unit.PERCENTAGE);
6565

6666
Window window = new Window(I18nProperties.getString(Strings.headingSurveyResponseDetails));
6767
window.setModal(true);

0 commit comments

Comments
 (0)