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

Commit 0d7c48d

Browse files
SORMAS-Foundation#3174 consider excluded countries when generating import templates
1 parent 3a2e858 commit 0d7c48d

2 files changed

Lines changed: 25 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: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@
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;
6669
import org.apache.commons.lang3.StringUtils;
6770
import org.slf4j.Logger;
6871
import org.slf4j.LoggerFactory;
@@ -517,7 +520,23 @@ private void appendListOfFields(List<ImportColumn> importColumns, Class<?> clazz
517520
continue;
518521
}
519522

520-
Method readMethod = null;
523+
String currentCountry = configFacade.getCountryCode();
524+
HideForCountriesExcept hideForCountriesExcept = field.getAnnotation(HideForCountriesExcept.class);
525+
if (hideForCountriesExcept != null) {
526+
boolean shouldHide = !Arrays.asList(hideForCountriesExcept.countries()).contains(currentCountry);
527+
if (shouldHide) {
528+
continue;
529+
}
530+
}
531+
HideForCountries hideForCountries = field.getAnnotation(HideForCountries.class);
532+
if (hideForCountries != null) {
533+
boolean shouldHide = Arrays.asList(hideForCountries.countries()).contains(currentCountry);
534+
if (shouldHide) {
535+
continue;
536+
}
537+
}
538+
539+
Method readMethod;
521540
try {
522541
readMethod = clazz.getDeclaredMethod("get" + WordUtils.capitalize(field.getName()));
523542
} catch (NoSuchMethodException e) {
@@ -529,7 +548,7 @@ private void appendListOfFields(List<ImportColumn> importColumns, Class<?> clazz
529548
}
530549

531550
// Fields without a getter or whose getters are declared in a superclass are ignored
532-
if (readMethod == null || readMethod.getDeclaringClass() != clazz) {
551+
if (readMethod.getDeclaringClass() != clazz) {
533552
continue;
534553
}
535554
// Fields with the @ImportIgnore annotation are ignored

0 commit comments

Comments
 (0)