Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 71b50c2

Browse files
author
vlad-ciucescu
authored
Merge pull request SORMAS-Foundation#3493 from hzi-braunschweig/3174-export-switzerland-fields
SORMAS-Foundation#3174 consider excluded countries when generating import templates
2 parents 31a4d45 + 244e433 commit 71b50c2

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/person/PersonDto.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Date;
2222
import java.util.List;
2323

24+
import de.symeda.sormas.api.CountryHelper;
2425
import de.symeda.sormas.api.Disease;
2526
import de.symeda.sormas.api.ImportIgnore;
2627
import de.symeda.sormas.api.facility.FacilityReferenceDto;
@@ -262,15 +263,15 @@ public class PersonDto extends PseudonymizableDto {
262263
private List<LocationDto> addresses = new ArrayList<>();
263264

264265
@Diseases(Disease.CORONAVIRUS)
265-
@HideForCountriesExcept(countries = "ch")
266+
@HideForCountriesExcept(countries = CountryHelper.COUNTRY_CODE_SWITZERLAND)
266267
private boolean hasCovidApp;
267268
@Diseases(Disease.CORONAVIRUS)
268-
@HideForCountriesExcept(countries = "ch")
269+
@HideForCountriesExcept(countries = CountryHelper.COUNTRY_CODE_SWITZERLAND)
269270
private boolean covidCodeDelivered;
270271

271272
private SymptomJournalStatus symptomJournalStatus;
272273
@SensitiveData
273-
@HideForCountriesExcept(countries = "de")
274+
@HideForCountriesExcept(countries = CountryHelper.COUNTRY_CODE_GERMANY)
274275
private String externalId;
275276

276277
public Integer getBirthdateDD() {

sormas-backend/src/main/java/de/symeda/sormas/backend/importexport/ImportFacadeEjb.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@
6363
import javax.ejb.Stateless;
6464
import javax.inject.Provider;
6565

66+
import de.symeda.sormas.api.CountryHelper;
67+
import de.symeda.sormas.api.utils.HideForCountries;
68+
import de.symeda.sormas.api.utils.HideForCountriesExcept;
69+
import de.symeda.sormas.api.utils.fieldvisibility.checkers.CountryFieldVisibilityChecker;
6670
import org.apache.commons.lang3.StringUtils;
6771
import org.slf4j.Logger;
6872
import org.slf4j.LoggerFactory;
@@ -517,7 +521,13 @@ private void appendListOfFields(List<ImportColumn> importColumns, Class<?> clazz
517521
continue;
518522
}
519523

520-
Method readMethod = null;
524+
String currentCountry = configFacade.getCountryCode();
525+
CountryFieldVisibilityChecker visibilityChecker = new CountryFieldVisibilityChecker(currentCountry);
526+
if (!visibilityChecker.isVisible(field)) {
527+
continue;
528+
}
529+
530+
Method readMethod;
521531
try {
522532
readMethod = clazz.getDeclaredMethod("get" + WordUtils.capitalize(field.getName()));
523533
} catch (NoSuchMethodException e) {
@@ -529,7 +539,7 @@ private void appendListOfFields(List<ImportColumn> importColumns, Class<?> clazz
529539
}
530540

531541
// Fields without a getter or whose getters are declared in a superclass are ignored
532-
if (readMethod == null || readMethod.getDeclaringClass() != clazz) {
542+
if (readMethod.getDeclaringClass() != clazz) {
533543
continue;
534544
}
535545
// Fields with the @ImportIgnore annotation are ignored

0 commit comments

Comments
 (0)