diff --git a/avni-server-api/src/main/java/org/avni/server/domain/JsonObject.java b/avni-server-api/src/main/java/org/avni/server/domain/JsonObject.java index a370679fc..08df8bdf1 100644 --- a/avni-server-api/src/main/java/org/avni/server/domain/JsonObject.java +++ b/avni-server-api/src/main/java/org/avni/server/domain/JsonObject.java @@ -21,9 +21,9 @@ public JsonObject with(String key, Object value) { return this; } - public JsonObject withEmptyCheck(String key, String value){ + public JsonObject withEmptyCheckAndTrim(String key, String value){ if(!S.isEmpty(value)){ - super.put(key, value); + super.put(key, value.trim()); } return this; } diff --git a/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java b/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java index 7e4568436..c8f20380c 100644 --- a/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java +++ b/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java @@ -36,6 +36,7 @@ public class UserAndCatchmentWriter implements ItemWriter, Serializable { private final Pattern compoundHeaderPattern; private final ResetSyncService resetSyncService; private static final String METADATA_ROW_START_STRING = "Mandatory field."; + private static final List DATE_PICKER_MODE_OPTIONS = Arrays.asList("calendar", "spinner"); @Autowired public UserAndCatchmentWriter(CatchmentService catchmentService, @@ -79,6 +80,14 @@ private void write(Row row) throws Exception { String groupsSpecified = row.get("User Groups"); JsonObject syncSettings = constructSyncSettings(row); + if(Objects.isNull(locale)) { + throw new Exception(format("Provided value '%s' for Preferred Language is invalid;", language)); + } + + if(Objects.isNull(datePickerMode) || !DATE_PICKER_MODE_OPTIONS.contains(datePickerMode)) { + throw new Exception(format("Provided value '%s' for Date picker mode is invalid;", datePickerMode)); + } + AddressLevel location = locationRepository.findByTitleLineageIgnoreCase(fullAddress) .orElseThrow(() -> new Exception(format( "Provided Location does not exist in Avni. Please add it or check for spelling mistakes '%s'", fullAddress))); @@ -109,9 +118,9 @@ private void write(Row row) throws Exception { user.setSettings(new JsonObject() .with("locale", locale) .with("trackLocation", trackLocation) - .withEmptyCheck("datePickerMode", datePickerMode) + .withEmptyCheckAndTrim("datePickerMode", datePickerMode) .with("showBeneficiaryMode", beneficiaryMode) - .withEmptyCheck(UserSettings.ID_PREFIX, idPrefix)); + .withEmptyCheckAndTrim(UserSettings.ID_PREFIX, idPrefix)); user.setOrganisationId(organisation.getId()); user.setAuditInfo(currentUser);