From b56fc3cb95aaa2b8f9cd12e24862675efc07b71f Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 11 Jul 2022 19:33:32 +0300 Subject: [PATCH] RED-4525 - Colors update - basics --- .../dossiertemplate/configuration/Colors.java | 20 +++++--- .../entity/configuration/ColorsEntity.java | 35 ++++++------- .../v1/processor/service/ColorsService.java | 15 +++--- .../controller/DictionaryController.java | 50 +++++++++++++------ .../db/changelog/db.changelog-master.yaml | 3 +- .../db/changelog/sql/37-update-colors.sql | 23 +++++++++ .../tests/DossierTemplateTest.java | 14 +++--- .../v1/server/integration/tests/TypeTest.java | 19 ++++--- 8 files changed, 113 insertions(+), 66 deletions(-) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/sql/37-update-colors.sql diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/Colors.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/Colors.java index 384a461d8..388bf8b72 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/Colors.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/Colors.java @@ -12,15 +12,21 @@ import lombok.NoArgsConstructor; public class Colors { private String dossierTemplateId; - private String defaultColor; - private String requestAdd; - private String requestRemove; - private String notRedacted; + + private String requestAddColor; + private String requestRemoveColor; + private String dictionaryRequestColor; + + private String previewColor; + private String analysisColor; private String updatedColor; - private String dictionaryRequestColor; - private String manualRedactionColor; - private String previewColor; + + private String recommendationColor; + private String hintColor; + private String redactionColor; + private String ignoredHintColor; + private String skippedColor; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java index fa5067e45..971c90447 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java @@ -23,33 +23,26 @@ public class ColorsEntity { private String dossierTemplateId; @Column - private String defaultColor; - + private String requestAddColor; @Column - private String requestAdd; - - @Column - private String requestRemove; - - @Column - private String notRedacted; - - @Column - private String analysisColor; - - @Column - private String updatedColor; - + private String requestRemoveColor; @Column private String dictionaryRequestColor; - - @Column - private String manualRedactionColor; - @Column private String previewColor; - + @Column + private String analysisColor; + @Column + private String updatedColor; + @Column + private String recommendationColor; + @Column + private String hintColor; + @Column + private String redactionColor; @Column private String ignoredHintColor; + @Column + private String skippedColor; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java index 96b02aa7d..7f5f51193 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java @@ -21,16 +21,17 @@ public class ColorsService { return colorsRepository.findById(dossierTemplateId).orElseGet(() -> { var entity = new ColorsEntity(); entity.setDossierTemplateId(dossierTemplateId); - entity.setAnalysisColor("#aaaaaa"); - entity.setDefaultColor("#aaaaaa"); + entity.setRequestAddColor("#aaaaaa"); + entity.setRequestRemoveColor("#aaaaaa"); entity.setDictionaryRequestColor("#aaaaaa"); entity.setPreviewColor("#aaaaaa"); - entity.setIgnoredHintColor("#aaaaaa"); - entity.setNotRedacted("#aaaaaa"); - entity.setManualRedactionColor("#aaaaaa"); - entity.setRequestAdd("#aaaaaa"); - entity.setRequestRemove("#aaaaaa"); + entity.setAnalysisColor("#aaaaaa"); entity.setUpdatedColor("#aaaaaa"); + entity.setRecommendationColor("#aaaaaa"); + entity.setHintColor("#aaaaaa"); + entity.setRedactionColor("#aaaaaa"); + entity.setIgnoredHintColor("#aaaaaa"); + entity.setSkippedColor("#aaaaaa"); return colorsRepository.save(entity); } ); 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 72f168295..c76c7240f 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 @@ -112,31 +112,42 @@ public class DictionaryController implements DictionaryResource { @Override - public void updateTypeValue(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody Type typeValueRequest) { + public void updateTypeValue(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody Type typeRequest) { + + validateColor(typeRequest.getHexColor()); + validateBoolean(typeRequest.isHint(), "isHint"); + validateBoolean(typeRequest.isCaseInsensitive(), "isCaseInsensitive"); + String skippedHexColor = typeRequest.getSkippedHexColor(); - 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); + skippedHexColor = colorsService.getColors(typeRequest.getDossierTemplateId()).getSkippedColor(); + typeRequest.setSkippedHexColor(skippedHexColor); } else { validateColor(skippedHexColor); } + + String recommendationHexColor = typeRequest.getRecommendationHexColor(); + if (StringUtils.isBlank(recommendationHexColor)) { //use the default value + recommendationHexColor = colorsService.getColors(typeRequest.getDossierTemplateId()).getRecommendationColor(); + typeRequest.setRecommendationHexColor(recommendationHexColor); + } else { + validateColor(typeRequest.getRecommendationHexColor()); + } + + // To check whether the type exists Type typeResult = convert(dictionaryPersistenceService.getType(typeId), Type.class); - if (typeValueRequest.getLabel() != null) { - checkForDuplicateLabels(typeResult.getDossierTemplateId(), typeResult.getDossierId(), typeResult.getType(), typeValueRequest.getLabel()); + if (typeRequest.getLabel() != null) { + checkForDuplicateLabels(typeResult.getDossierTemplateId(), typeResult.getDossierId(), typeResult.getType(), typeRequest.getLabel()); } else { - typeValueRequest.setLabel(typeResult.getLabel()); + typeRequest.setLabel(typeResult.getLabel()); } - dictionaryPersistenceService.updateType(typeId, convert(typeValueRequest, TypeEntity.class)); + dictionaryPersistenceService.updateType(typeId, convert(typeRequest, TypeEntity.class)); - if (typeResult.isHint() != typeValueRequest.isHint() || typeResult.isCaseInsensitive() != typeValueRequest.isCaseInsensitive() || typeResult - .getRank() != typeValueRequest.getRank()) { + if (typeResult.isHint() != typeRequest.isHint() || typeResult.isCaseInsensitive() != typeRequest.isCaseInsensitive() || typeResult + .getRank() != typeRequest.getRank()) { var currentVersion = getCurrentVersion(typeResult); @@ -177,13 +188,22 @@ public class DictionaryController implements DictionaryResource { } String color = typeRequest.getHexColor(); validateColor(color); + String skippedHexColor = typeRequest.getSkippedHexColor(); if (StringUtils.isBlank(skippedHexColor)) { //use the default value - skippedHexColor = colorsService.getColors(typeRequest.getDossierTemplateId()).getNotRedacted(); + skippedHexColor = colorsService.getColors(typeRequest.getDossierTemplateId()).getSkippedColor(); } 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); + + String recommendationHexColor = typeRequest.getRecommendationHexColor(); + if (StringUtils.isBlank(recommendationHexColor)) { //use the default value + recommendationHexColor = colorsService.getColors(typeRequest.getDossierTemplateId()).getRecommendationColor(); + } else { + validateColor(typeRequest.getRecommendationHexColor()); + } + + return convert(dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, recommendationHexColor, 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/main/resources/db/changelog/db.changelog-master.yaml b/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/db.changelog-master.yaml index 6b01366c0..2c0dd8822 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/db.changelog-master.yaml @@ -87,5 +87,6 @@ databaseChangeLog: file: db/changelog/sql/35-update-skipped-color-existing-types.sql - include: file: db/changelog/36-revert-reports-information-column.changelog.yaml - + - include: + file: db/changelog/sql/37-update-colors.sql diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/sql/37-update-colors.sql b/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/sql/37-update-colors.sql new file mode 100644 index 000000000..912f793f9 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/resources/db/changelog/sql/37-update-colors.sql @@ -0,0 +1,23 @@ +-- color configuration general fixes +alter table color_configuration add column request_add_color VARCHAR(255); +alter table color_configuration add column request_remove_color VARCHAR(255); +alter table color_configuration add column recommendation_color VARCHAR(255); +alter table color_configuration add column skipped_color VARCHAR(255); +alter table color_configuration add column redaction_color VARCHAR(255); +alter table color_configuration add column hint_color VARCHAR(255); + +update color_configuration set request_add_color = request_add; +update color_configuration set request_remove_color = request_remove; +update color_configuration set skipped_color = not_redacted; +update color_configuration set redaction_color = preview_color; +update color_configuration set hint_color = '#fa98f7'; -- UI Hardcoded value +update color_configuration set recommendation_color = '#c5d3eb'; -- UI Hardcoded value + +alter table color_configuration drop column manual_redaction_color; +alter table color_configuration drop column request_add; +alter table color_configuration drop column request_remove; +alter table color_configuration drop column not_redacted; + +-- update color values for existing +update entity e set recommendation_hex_color = (select recommendation_color from color_configuration c where c.dossier_template_id = e.dossier_template_id) where recommendation_hex_color is null; +update entity e set skipped_hex_color = '#ec9090' where e.dossier_id is not null; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java index d48fe55a5..4ef28b492 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java @@ -211,17 +211,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .build()); var col = Colors.builder() .analysisColor("#111111") - .defaultColor("#222222") .dossierTemplateId(dossierTemplate.getId()) .dictionaryRequestColor("#333333") - .requestAdd("#444444") + .requestAddColor("#444444") .ignoredHintColor("#555555") - .requestRemove("#666666") - .requestRemove("#777777") - .notRedacted("#888888") - .previewColor("#999999") + .requestRemoveColor("#666666") + .analysisColor("#777777") + .previewColor("#888888") + .redactionColor("#999999") .updatedColor("#aaaaaa") - .manualRedactionColor("#bbbbbb") .build(); dictionaryClient.setColors(dossierTemplate.getId(), col); var dossierStatus = CreateOrUpdateDossierStatusRequest.builder() @@ -275,7 +273,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()) .get(0) .getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates(clonedDT.getId()).get(0).getFileName()); - assertThat(dictionaryClient.getColors(dossierTemplate.getId()).getRequestAdd()).isEqualTo(dictionaryClient.getColors(clonedDT.getId()).getRequestAdd()); + assertThat(dictionaryClient.getColors(dossierTemplate.getId()).getRequestAddColor()).isEqualTo(dictionaryClient.getColors(clonedDT.getId()).getRequestAddColor()); assertThat(dictionaryClient.getAllTypesForDossierTemplate(dossierTemplate.getId(), false) .get(0) .getRank()).isEqualTo(dictionaryClient.getAllTypesForDossierTemplate(clonedDT.getId(), false).get(0).getRank()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java index 064d46319..e2be9489e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java @@ -92,17 +92,22 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var colors = new Colors(); - colors.setAnalysisColor("#dddddd"); - colors.setDefaultColor("#dddddd"); + + colors.setRequestAddColor("#dddddd"); + colors.setRequestRemoveColor("#dddddd"); colors.setDictionaryRequestColor("#dddddd"); + colors.setPreviewColor("#dddddd"); - colors.setManualRedactionColor("#dddddd"); - colors.setNotRedacted("#dddddd"); - colors.setRequestAdd("#dddddd"); - colors.setRequestRemove("#dddddd"); - colors.setIgnoredHintColor("#dddddd"); + colors.setRedactionColor("#dddddd"); + + colors.setAnalysisColor("#dddddd"); colors.setUpdatedColor("#dddddd"); + colors.setRecommendationColor("#dddddd"); + + colors.setSkippedColor("#dddddd"); + colors.setIgnoredHintColor("#dddddd"); + colors.setDossierTemplateId(dossierTemplate.getId()); dictionaryClient.setColors(dossierTemplate.getId(), colors);