From d5dffb088baf228af2e3044d2ab07fd7fb1254ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tandeau=20De=20Marsac=20Guyl=C3=A8ne?= Date: Wed, 4 Feb 2026 17:18:28 +0100 Subject: [PATCH 1/6] test: fix due to jackson2-> jackson3 --- .../api/testcontainers/queries/OperationsQueriesTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/magma-diffusion-impl/src/test/java/fr/insee/rmes/magma/diffusion/api/testcontainers/queries/OperationsQueriesTest.java b/magma-diffusion-impl/src/test/java/fr/insee/rmes/magma/diffusion/api/testcontainers/queries/OperationsQueriesTest.java index 7641de1e..2f3e8cc2 100644 --- a/magma-diffusion-impl/src/test/java/fr/insee/rmes/magma/diffusion/api/testcontainers/queries/OperationsQueriesTest.java +++ b/magma-diffusion-impl/src/test/java/fr/insee/rmes/magma/diffusion/api/testcontainers/queries/OperationsQueriesTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; From c8cb4a462d42a6f45247e2264b67f74e49c35d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tandeau=20De=20Marsac=20Guyl=C3=A8ne?= Date: Wed, 4 Feb 2026 17:20:18 +0100 Subject: [PATCH 2/6] fix: rapportQualite due to jackson2->jackson3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Jackson 2 : Les valeurs null étaient automatiquement converties en valeur par défaut du primitif (false pour boolean) jackson3 : Les valeurs null sur des primitifs génèrent une exception --- .../services/RapportQualiteServiceImpl.java | 93 ++++++++++--------- .../magma/diffusion/utils/RubriqueDTO.java | 4 +- 2 files changed, 52 insertions(+), 45 deletions(-) diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java index fb181472..b2f9f6fc 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java @@ -121,46 +121,10 @@ private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, Rapport contenuLg1.setTexte(""); } contenuLg1.setLangue("fr"); - if (rubriqueDTO.hasDocLg1()) { - List rubriqueDocuments = requestProcessor.queryToFindDocuments() - .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(),"fr")) - .executeQuery() - .listResult(DocumentDTO.class) - .result(); - for (DocumentDTO documentDTO : rubriqueDocuments) { - Document document = new Document(); - if (documentDTO.labelLg1() != null && documentDTO.labelLg2() != null){ - List label = createListLangueContenu(createLangueContenu(documentDTO.labelLg1(), "fr"), createLangueContenu(documentDTO.labelLg2(), "en")); - document.label(label); - } - if (documentDTO.labelLg1() != null && documentDTO.labelLg2() == null) { - LocalisedLabel labelLg1 = createLangueContenu(documentDTO.labelLg1(), "fr"); - List label = createListLangueContenu(labelLg1,null); - document.label(label); - } - - document.setDateMiseAJour(documentDTO.dateMiseAJour()); - document.setLangue(documentDTO.langue()); - document.setUrl(documentDTO.url()); - contenuLg1.addDocumentsItem(document); - } - - } - rubrique.addContenusItem(contenuLg1); - - if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2()){ - Contenu contenuLg2 = new Contenu(); - contenuLg2.setDocuments(null);// will be valued only if a document exists - if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())) { - contenuLg2.setTexte(rubriqueDTO.labelLg2()); - } else { - contenuLg2.setTexte(""); - } - contenuLg2.setLangue("en"); - - if (rubriqueDTO.hasDocLg2()) { + if (rubriqueDTO.hasDocLg1() != null) { + if (rubriqueDTO.hasDocLg1()) { List rubriqueDocuments = requestProcessor.queryToFindDocuments() - .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(),"en")) + .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(),"fr")) .executeQuery() .listResult(DocumentDTO.class) .result(); @@ -171,19 +135,62 @@ private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, Rapport document.label(label); } if (documentDTO.labelLg1() != null && documentDTO.labelLg2() == null) { - LocalisedLabel labelFr = createLangueContenu(documentDTO.labelLg1(), "fr"); - List label = createListLangueContenu(labelFr,null); + LocalisedLabel labelLg1 = createLangueContenu(documentDTO.labelLg1(), "fr"); + List label = createListLangueContenu(labelLg1,null); document.label(label); } document.setDateMiseAJour(documentDTO.dateMiseAJour()); document.setLangue(documentDTO.langue()); document.setUrl(documentDTO.url()); - contenuLg2.addDocumentsItem(document); + contenuLg1.addDocumentsItem(document); } + } - rubrique.addContenusItem(contenuLg2); } + + rubrique.addContenusItem(contenuLg1); + + if (rubriqueDTO.hasDocLg2() != null) { + if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2()){ + Contenu contenuLg2 = new Contenu(); + contenuLg2.setDocuments(null);// will be valued only if a document exists + if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())) { + contenuLg2.setTexte(rubriqueDTO.labelLg2()); + } else { + contenuLg2.setTexte(""); + } + contenuLg2.setLangue("en"); + + if (rubriqueDTO.hasDocLg2()) { + List rubriqueDocuments = requestProcessor.queryToFindDocuments() + .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(),"en")) + .executeQuery() + .listResult(DocumentDTO.class) + .result(); + for (DocumentDTO documentDTO : rubriqueDocuments) { + Document document = new Document(); + if (documentDTO.labelLg1() != null && documentDTO.labelLg2() != null){ + List label = createListLangueContenu(createLangueContenu(documentDTO.labelLg1(), "fr"), createLangueContenu(documentDTO.labelLg2(), "en")); + document.label(label); + } + if (documentDTO.labelLg1() != null && documentDTO.labelLg2() == null) { + LocalisedLabel labelFr = createLangueContenu(documentDTO.labelLg1(), "fr"); + List label = createListLangueContenu(labelFr,null); + document.label(label); + } + + document.setDateMiseAJour(documentDTO.dateMiseAJour()); + document.setLangue(documentDTO.langue()); + document.setUrl(documentDTO.url()); + contenuLg2.addDocumentsItem(document); + } + } + rubrique.addContenusItem(contenuLg2); + } + } + + return rubrique; } diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java index 39214ff2..ee43b257 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java @@ -13,8 +13,8 @@ public record RubriqueDTO ( String labelLg2, String codeUri, String organisationUri, - boolean hasDocLg1, - boolean hasDocLg2, + Boolean hasDocLg1, + Boolean hasDocLg2, String labelObjLg1, String labelObjLg2, String maxOccurs, From a3f1a5e7516af45e928b7a98b3d03dc1bfa9a36d Mon Sep 17 00:00:00 2001 From: GtanSndil Date: Thu, 5 Feb 2026 15:53:40 +0100 Subject: [PATCH 3/6] refactor: method for RICH_TEXT --- .../services/RapportQualiteServiceImpl.java | 103 +++++++----------- 1 file changed, 39 insertions(+), 64 deletions(-) diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java index b2f9f6fc..23d1681b 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java @@ -121,79 +121,54 @@ private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, Rapport contenuLg1.setTexte(""); } contenuLg1.setLangue("fr"); - if (rubriqueDTO.hasDocLg1() != null) { - if (rubriqueDTO.hasDocLg1()) { - List rubriqueDocuments = requestProcessor.queryToFindDocuments() - .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(),"fr")) - .executeQuery() - .listResult(DocumentDTO.class) - .result(); - for (DocumentDTO documentDTO : rubriqueDocuments) { - Document document = new Document(); - if (documentDTO.labelLg1() != null && documentDTO.labelLg2() != null){ - List label = createListLangueContenu(createLangueContenu(documentDTO.labelLg1(), "fr"), createLangueContenu(documentDTO.labelLg2(), "en")); - document.label(label); - } - if (documentDTO.labelLg1() != null && documentDTO.labelLg2() == null) { - LocalisedLabel labelLg1 = createLangueContenu(documentDTO.labelLg1(), "fr"); - List label = createListLangueContenu(labelLg1,null); - document.label(label); - } - - document.setDateMiseAJour(documentDTO.dateMiseAJour()); - document.setLangue(documentDTO.langue()); - document.setUrl(documentDTO.url()); - contenuLg1.addDocumentsItem(document); - } - - } + if (rubriqueDTO.hasDocLg1() != null && rubriqueDTO.hasDocLg1()) { + addContenu(requestProcessor, rapportQualite, rubriqueDTO, "fr", contenuLg1); } - rubrique.addContenusItem(contenuLg1); - if (rubriqueDTO.hasDocLg2() != null) { - if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2()){ - Contenu contenuLg2 = new Contenu(); - contenuLg2.setDocuments(null);// will be valued only if a document exists - if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())) { - contenuLg2.setTexte(rubriqueDTO.labelLg2()); - } else { - contenuLg2.setTexte(""); - } - contenuLg2.setLangue("en"); - - if (rubriqueDTO.hasDocLg2()) { - List rubriqueDocuments = requestProcessor.queryToFindDocuments() - .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(),"en")) - .executeQuery() - .listResult(DocumentDTO.class) - .result(); - for (DocumentDTO documentDTO : rubriqueDocuments) { - Document document = new Document(); - if (documentDTO.labelLg1() != null && documentDTO.labelLg2() != null){ - List label = createListLangueContenu(createLangueContenu(documentDTO.labelLg1(), "fr"), createLangueContenu(documentDTO.labelLg2(), "en")); - document.label(label); - } - if (documentDTO.labelLg1() != null && documentDTO.labelLg2() == null) { - LocalisedLabel labelFr = createLangueContenu(documentDTO.labelLg1(), "fr"); - List label = createListLangueContenu(labelFr,null); - document.label(label); - } - - document.setDateMiseAJour(documentDTO.dateMiseAJour()); - document.setLangue(documentDTO.langue()); - document.setUrl(documentDTO.url()); - contenuLg2.addDocumentsItem(document); - } - } - rubrique.addContenusItem(contenuLg2); + if (rubriqueDTO.hasDocLg2() != null && (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2())){ + Contenu contenuLg2 = new Contenu(); + contenuLg2.setDocuments(null);// will be valued only if a document exists + if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())) { + contenuLg2.setTexte(rubriqueDTO.labelLg2()); + } else { + contenuLg2.setTexte(""); + } + contenuLg2.setLangue("en"); + if (rubriqueDTO.hasDocLg2()) { + addContenu(requestProcessor, rapportQualite, rubriqueDTO, "en", contenuLg2); } + rubrique.addContenusItem(contenuLg2); } - return rubrique; } + private static void addContenu(RequestProcessor requestProcessor, RapportQualite rapportQualite, RubriqueDTO rubriqueDTO, String lang, Contenu contenuLg1) { + List rubriqueDocuments = requestProcessor.queryToFindDocuments() + .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(), lang)) + .executeQuery() + .listResult(DocumentDTO.class) + .result(); + for (DocumentDTO documentDTO : rubriqueDocuments) { + Document document = new Document(); + if (documentDTO.labelLg1() != null && documentDTO.labelLg2() != null) { + List label = createListLangueContenu(createLangueContenu(documentDTO.labelLg1(), "fr"), createLangueContenu(documentDTO.labelLg2(), "en")); + document.label(label); + } + if (documentDTO.labelLg1() != null && documentDTO.labelLg2() == null) { + LocalisedLabel labelsLg1 = createLangueContenu(documentDTO.labelLg1(), "fr"); + List label = createListLangueContenu(labelsLg1, null); + document.label(label); + } + + document.setDateMiseAJour(documentDTO.dateMiseAJour()); + document.setLangue(documentDTO.langue()); + document.setUrl(documentDTO.url()); + contenuLg1.addDocumentsItem(document); + } + } + private Rubrique addCodeList (RubriqueDTO rubriqueDTO, Rubrique rubrique, RapportQualite rapportQualite) { IdUriLabel rubriqueCodeList = new IdUriLabel(); rubriqueCodeList.setId(rubriqueDTO.valeurSimple()); From a2ae8bddcadd64063dbb8ef6f4e84892024421c9 Mon Sep 17 00:00:00 2001 From: GtanSndil Date: Thu, 5 Feb 2026 17:20:41 +0100 Subject: [PATCH 4/6] refactor --- .../services/RapportQualiteServiceImpl.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java index 23d1681b..85f9309e 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java @@ -51,8 +51,7 @@ public RapportQualite transformDTOenRapportQualite(RapportQualiteDTO rapportQual private Rubrique transformRubrique(RubriqueDTO rubriqueDTO, RapportQualite rapportQualite, RequestProcessor requestProcessor) { Rubrique rubrique = new Rubrique(); - rubrique.setId(rubriqueDTO.id()); - rubrique.setUri(rubriqueDTO.uri()); + createIdUriLabel(rubriqueDTO, rubrique); rubrique.setIdParent(rubriqueDTO.idParent()); rubrique.setType(rubriqueDTO.type()); rubrique.setLabel(null);//valued later only if exists @@ -79,10 +78,10 @@ private Rubrique transformRubrique(RubriqueDTO rubriqueDTO, RapportQualite rappo rubrique.setLabel(label); break; case "GEOGRAPHY": - rubrique.setTerritoire(createIdUriLabel(rubriqueDTO, rubriqueDTO.geoUri())); + rubrique.setTerritoire(createUriLabel(rubriqueDTO, rubriqueDTO.geoUri())); break; case "ORGANIZATION": - rubrique.setOrganisme(createIdUriLabel(rubriqueDTO, rubriqueDTO.organisationUri())); + rubrique.setOrganisme(createUriLabel(rubriqueDTO, rubriqueDTO.organisationUri())); break; default: break; @@ -92,8 +91,13 @@ private Rubrique transformRubrique(RubriqueDTO rubriqueDTO, RapportQualite rappo } + private static void createIdUriLabel(RubriqueDTO rubriqueDTO, Rubrique rubrique) { + rubrique.setId(rubriqueDTO.id()); + rubrique.setUri(rubriqueDTO.uri()); + } + - private IdUriLabel createIdUriLabel(RubriqueDTO rubriqueDTO, String uri) { + private IdUriLabel createUriLabel(RubriqueDTO rubriqueDTO, String uri) { IdUriLabel rubriqueWithIdUriLabel = new IdUriLabel(); rubriqueWithIdUriLabel.setId(rubriqueDTO.valeurSimple()); rubriqueWithIdUriLabel.setUri(URI.create(uri)); @@ -184,7 +188,7 @@ private Rubrique addCodeList (RubriqueDTO rubriqueDTO, Rubrique rubrique, Rappor rubriqueCodeList.setLabel(label); } - if (rapportQualite.getRubriques() != null) {//is null if the first rubrique is a CODE_LIST type rubrique + if (rapportQualite.getRubriques() != null) {//is null if the first rubric is a CODE_LIST type rubric boolean rubricExist = rapportQualite.getRubriques().stream() .filter(Objects::nonNull) // We keep only not null rubrics, otherwise NullPointer Exception when r.getId() From 824ddced5342a328ed5e7eca0e00d90d19b1bbf0 Mon Sep 17 00:00:00 2001 From: GtanSndil Date: Thu, 5 Feb 2026 17:29:38 +0100 Subject: [PATCH 5/6] refactor --- .../services/RapportQualiteServiceImpl.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java index 85f9309e..2cc58ed4 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java @@ -116,7 +116,7 @@ private IdUriLabel createUriLabel(RubriqueDTO rubriqueDTO, String uri) { } - private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, RapportQualite rapportQualite, RequestProcessor requestProcessor) { + private void addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, RapportQualite rapportQualite, RequestProcessor requestProcessor) { Contenu contenuLg1 = new Contenu(); contenuLg1.setDocuments(null);// will be valued only if a document exists if (StringUtils.isNotEmpty(rubriqueDTO.labelLg1())) { @@ -145,7 +145,6 @@ private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, Rapport rubrique.addContenusItem(contenuLg2); } - return rubrique; } private static void addContenu(RequestProcessor requestProcessor, RapportQualite rapportQualite, RubriqueDTO rubriqueDTO, String lang, Contenu contenuLg1) { @@ -177,15 +176,11 @@ private Rubrique addCodeList (RubriqueDTO rubriqueDTO, Rubrique rubrique, Rappor IdUriLabel rubriqueCodeList = new IdUriLabel(); rubriqueCodeList.setId(rubriqueDTO.valeurSimple()); rubriqueCodeList.setUri(URI.create(rubriqueDTO.codeUri())); - if (rubriqueDTO.labelObjLg1() != null && rubriqueDTO.labelObjLg2() != null) { - List labelCodeList = createListLangueContenu(createLangueContenu(rubriqueDTO.labelObjLg1(), "fr"), createLangueContenu(rubriqueDTO.labelObjLg2(), "en")); - rubriqueCodeList.setLabel(labelCodeList); - } - if (rubriqueDTO.labelObjLg1() != null && rubriqueDTO.labelObjLg2() == null) { - LocalisedLabel labelCodeListLg1 = createLangueContenu(rubriqueDTO.labelObjLg1(), "fr"); - List label = new ArrayList<>(); - label.add(labelCodeListLg1); - rubriqueCodeList.setLabel(label); + if (rubriqueDTO.labelObjLg1() != null) { + LocalisedLabel labelLg1 = rubriqueDTO.labelObjLg1() != null ? createLangueContenu(rubriqueDTO.labelObjLg1(), "fr") : null; + LocalisedLabel labelLg2 = rubriqueDTO.labelObjLg2() != null ? createLangueContenu(rubriqueDTO.labelObjLg2(), "en") : null; + + rubriqueCodeList.setLabel(createListLangueContenu(labelLg1, labelLg2)); } if (rapportQualite.getRubriques() != null) {//is null if the first rubric is a CODE_LIST type rubric From f4a481dff671976f0e24a8d80857d61cb1bbe38d Mon Sep 17 00:00:00 2001 From: GtanSndil Date: Fri, 6 Feb 2026 17:04:26 +0100 Subject: [PATCH 6/6] refactor --- .../services/RapportQualiteServiceImpl.java | 25 +++++++++++-------- .../magma/diffusion/utils/RubriqueDTO.java | 8 ++++++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java index 2cc58ed4..d9397cba 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/services/RapportQualiteServiceImpl.java @@ -50,13 +50,7 @@ public RapportQualite transformDTOenRapportQualite(RapportQualiteDTO rapportQual private Rubrique transformRubrique(RubriqueDTO rubriqueDTO, RapportQualite rapportQualite, RequestProcessor requestProcessor) { - Rubrique rubrique = new Rubrique(); - createIdUriLabel(rubriqueDTO, rubrique); - rubrique.setIdParent(rubriqueDTO.idParent()); - rubrique.setType(rubriqueDTO.type()); - rubrique.setLabel(null);//valued later only if exists - rubrique.setContenus(null);//valued later only if exists - rubrique.setCodes(null);//valued later only if exists + Rubrique rubrique = createRubrique(rubriqueDTO); if (rubriqueDTO.titreLg1() != null && rubriqueDTO.titreLg2() != null) { List titre = createListLangueContenu(createLangueContenu(rubriqueDTO.titreLg1(), "fr"), createLangueContenu(rubriqueDTO.titreLg2(), "en")); @@ -91,9 +85,16 @@ private Rubrique transformRubrique(RubriqueDTO rubriqueDTO, RapportQualite rappo } - private static void createIdUriLabel(RubriqueDTO rubriqueDTO, Rubrique rubrique) { + private static Rubrique createRubrique(RubriqueDTO rubriqueDTO) { + Rubrique rubrique = new Rubrique(); rubrique.setId(rubriqueDTO.id()); rubrique.setUri(rubriqueDTO.uri()); + rubrique.setIdParent(rubriqueDTO.idParent()); + rubrique.setType(rubriqueDTO.type()); + rubrique.setLabel(null);//valued only if exists + rubrique.setContenus(null);//valued only if exists + rubrique.setCodes(null);//valued only if exists + return rubrique; } @@ -125,12 +126,12 @@ private void addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, RapportQual contenuLg1.setTexte(""); } contenuLg1.setLangue("fr"); - if (rubriqueDTO.hasDocLg1() != null && rubriqueDTO.hasDocLg1()) { + if (rubriqueDTO.hasDocLg1()) { addContenu(requestProcessor, rapportQualite, rubriqueDTO, "fr", contenuLg1); } rubrique.addContenusItem(contenuLg1); - if (rubriqueDTO.hasDocLg2() != null && (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2())){ + if (rubriqueDTO.isDocLg2NotEmpty() && (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2())){ Contenu contenuLg2 = new Contenu(); contenuLg2.setDocuments(null);// will be valued only if a document exists if (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())) { @@ -147,6 +148,8 @@ private void addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, RapportQual } + + private static void addContenu(RequestProcessor requestProcessor, RapportQualite rapportQualite, RubriqueDTO rubriqueDTO, String lang, Contenu contenuLg1) { List rubriqueDocuments = requestProcessor.queryToFindDocuments() .with(new OperationsDocumentsRequestParametizer(rapportQualite.getId(), rubriqueDTO.id(), lang)) @@ -177,7 +180,7 @@ private Rubrique addCodeList (RubriqueDTO rubriqueDTO, Rubrique rubrique, Rappor rubriqueCodeList.setId(rubriqueDTO.valeurSimple()); rubriqueCodeList.setUri(URI.create(rubriqueDTO.codeUri())); if (rubriqueDTO.labelObjLg1() != null) { - LocalisedLabel labelLg1 = rubriqueDTO.labelObjLg1() != null ? createLangueContenu(rubriqueDTO.labelObjLg1(), "fr") : null; + LocalisedLabel labelLg1 = createLangueContenu(rubriqueDTO.labelObjLg1(), "fr"); LocalisedLabel labelLg2 = rubriqueDTO.labelObjLg2() != null ? createLangueContenu(rubriqueDTO.labelObjLg2(), "en") : null; rubriqueCodeList.setLabel(createListLangueContenu(labelLg1, labelLg2)); diff --git a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java index ee43b257..abf5da62 100644 --- a/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java +++ b/magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/RubriqueDTO.java @@ -21,6 +21,14 @@ public record RubriqueDTO ( String geoUri ){ + public boolean isDocLg1NotEmpty() { + return hasDocLg1() != null; + } + + public boolean isDocLg2NotEmpty() { + return hasDocLg2() != null; + } + public RubriqueDTO withLabelLg1(String labelLg1) { return new RubriqueDTO(id, uri, idParent, type, titreLg1, titreLg2, valeurSimple, labelLg1, labelLg2, codeUri, organisationUri, hasDocLg1, hasDocLg2, labelObjLg1, labelObjLg2, maxOccurs, geoUri);