diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java index 2d9ab83a2..72f168295 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java @@ -19,6 +19,7 @@ import com.iqser.red.service.persistence.service.v1.api.resources.DictionaryReso import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -116,6 +117,13 @@ public class DictionaryController implements DictionaryResource { validateColor(typeValueRequest.getHexColor()); validateBoolean(typeValueRequest.isHint(), "isHint"); validateBoolean(typeValueRequest.isCaseInsensitive(), "isCaseInsensitive"); + String skippedHexColor = typeValueRequest.getSkippedHexColor(); + if (StringUtils.isBlank(skippedHexColor)) { //use the default value + skippedHexColor = colorsService.getColors(typeValueRequest.getDossierTemplateId()).getNotRedacted(); + typeValueRequest.setSkippedHexColor(skippedHexColor); + } else { + validateColor(skippedHexColor); + } // To check whether the type exists Type typeResult = convert(dictionaryPersistenceService.getType(typeId), Type.class); @@ -169,7 +177,13 @@ public class DictionaryController implements DictionaryResource { } String color = typeRequest.getHexColor(); validateColor(color); - return convert(dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, typeRequest.getRecommendationHexColor(), typeRequest.getSkippedHexColor(), typeRequest.getRank(), typeRequest.isHint(), typeRequest.isCaseInsensitive(), typeRequest.isRecommendation(), typeRequest.getDescription(), typeRequest.isAddToDictionaryAction(), typeRequest.getLabel(), typeRequest.getDossierId(), typeRequest.isHasDictionary(), typeRequest.isSystemManaged(), typeRequest.isAutoHideSkipped()), Type.class); + String skippedHexColor = typeRequest.getSkippedHexColor(); + if (StringUtils.isBlank(skippedHexColor)) { //use the default value + skippedHexColor = colorsService.getColors(typeRequest.getDossierTemplateId()).getNotRedacted(); + } else { + validateColor(typeRequest.getSkippedHexColor()); + } + return convert(dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, typeRequest.getRecommendationHexColor(), skippedHexColor, typeRequest.getRank(), typeRequest.isHint(), typeRequest.isCaseInsensitive(), typeRequest.isRecommendation(), typeRequest.getDescription(), typeRequest.isAddToDictionaryAction(), typeRequest.getLabel(), typeRequest.getDossierId(), typeRequest.isHasDictionary(), typeRequest.isSystemManaged(), typeRequest.isAutoHideSkipped()), Type.class); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java index 775d9af0b..fcb6eaaa9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java @@ -58,6 +58,21 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType.getFalseRecommendationEntries()).hasSize(2); } + @Test + public void testSkippedColor() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var type = typeProvider.testAndProvideType(dossierTemplate); + assertThat(type.getRecommendationHexColor()).isEqualTo("#aaaaaa"); + assertThat(type.getSkippedHexColor()).isEqualTo("#aaaaaa"); + + type.setSkippedHexColor(null); + dictionaryClient.updateTypeValue(type.getTypeId(), type); + + var loadedType = dictionaryClient.getDictionaryForType(type.getId(), null); + assertThat(loadedType.getSkippedHexColor()).isNotNull(); + } + @Test public void testAddEntriesWithStopWord() {