From 5369eeec2d4650a3babf39d8383d7077b107a70e Mon Sep 17 00:00:00 2001 From: Hugo Bouttes Date: Tue, 28 Jan 2025 23:16:44 +0100 Subject: [PATCH 1/2] fix : avoid returning blank keywords --- .../insee/rmes/services/datasets/DataSetsImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java b/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java index 1bb563a1..b20bb5de 100644 --- a/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java +++ b/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java @@ -254,12 +254,16 @@ protected void testPresenceVariablePuisAjout(DataSetModelSwagger reponse, JSONOb } //récupération de keyword if (catalogue_result.has("keywordLg1") ){ - List keyword = constructLangContentList(catalogue_result.getString("keywordLg1"),Config.LG1); - reponse.setKeyword(keyword); + if (catalogue_result.getString("keywordLg1").length()>0){ + List keyword = constructLangContentList(catalogue_result.getString("keywordLg1"),Config.LG1); + reponse.setKeyword(keyword); + } } if (catalogue_result.has("keywordLg2") ){ - List keyword = constructLangContentList(catalogue_result.getString("keywordLg2"),Config.LG2); - reponse.setKeyword(keyword); + if (catalogue_result.getString("keywordLg2").length()>0){ + List keyword = constructLangContentList(catalogue_result.getString("keywordLg2"),Config.LG2); + reponse.setKeyword(keyword); + } } From 3f48102532986ee00ac5cf52e5b05f8a6f3e8729 Mon Sep 17 00:00:00 2001 From: Hugo Bouttes Date: Wed, 29 Jan 2025 13:16:58 +0100 Subject: [PATCH 2/2] feat : add addkeyword method --- .../dataset/DataSetModelSwagger.java | 11 +++++ .../rmes/services/datasets/DataSetsImpl.java | 14 +++++-- .../services/datasets/DataSetsImplTest.java | 40 +++++++++++++++++++ 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/main/java/fr/insee/rmes/modelSwagger/dataset/DataSetModelSwagger.java b/src/main/java/fr/insee/rmes/modelSwagger/dataset/DataSetModelSwagger.java index b06bfd9b..e309095c 100644 --- a/src/main/java/fr/insee/rmes/modelSwagger/dataset/DataSetModelSwagger.java +++ b/src/main/java/fr/insee/rmes/modelSwagger/dataset/DataSetModelSwagger.java @@ -11,6 +11,7 @@ import jakarta.annotation.Generated; import jakarta.validation.Valid; import java.io.Serializable; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -206,4 +207,14 @@ public Uri getUriWithTypeUri(){ Uri uri = new Uri(this.uri); return uri; } + + public void addKeyword(LangContent langContent) { + if (this.keyword == null) { + this.keyword = new ArrayList<>(); + this.keyword.add(langContent); + } + else { + this.keyword.add(langContent); + } + } } diff --git a/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java b/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java index b20bb5de..3307a6b7 100644 --- a/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java +++ b/src/main/java/fr/insee/rmes/services/datasets/DataSetsImpl.java @@ -255,14 +255,20 @@ protected void testPresenceVariablePuisAjout(DataSetModelSwagger reponse, JSONOb //récupération de keyword if (catalogue_result.has("keywordLg1") ){ if (catalogue_result.getString("keywordLg1").length()>0){ - List keyword = constructLangContentList(catalogue_result.getString("keywordLg1"),Config.LG1); - reponse.setKeyword(keyword); + LangContent langContentLg1 = new LangContent(Config.LG1,catalogue_result.getString("keywordLg1")); + reponse.addKeyword(langContentLg1); + } + else { + catalogue_result.remove("keywordLg1"); } } if (catalogue_result.has("keywordLg2") ){ if (catalogue_result.getString("keywordLg2").length()>0){ - List keyword = constructLangContentList(catalogue_result.getString("keywordLg2"),Config.LG2); - reponse.setKeyword(keyword); + LangContent langContentLg2 = new LangContent(Config.LG2,catalogue_result.getString("keywordLg2")); + reponse.addKeyword(langContentLg2); + } + else { + catalogue_result.remove("keywordLg2"); } } diff --git a/src/test/java/fr/insee/rmes/services/datasets/DataSetsImplTest.java b/src/test/java/fr/insee/rmes/services/datasets/DataSetsImplTest.java index a4d3bbc7..c8871257 100644 --- a/src/test/java/fr/insee/rmes/services/datasets/DataSetsImplTest.java +++ b/src/test/java/fr/insee/rmes/services/datasets/DataSetsImplTest.java @@ -148,6 +148,46 @@ static void setUp() { Config.LG2 = "en"; } + @Test + void testPresenceVariablePuisAjout_Keywords() throws RmesException, JsonProcessingException { + DataSetModelSwagger dataSetModelSwaggerWith= new DataSetModelSwagger(); + + JSONObject empty = new JSONObject(); + HashMap mapWith = new HashMap<>(); + mapWith.put("keywordLg1", "contentFR"); + mapWith.put("keywordLg2", "contentEN"); + + JSONObject catalogueWithKeywords = new JSONObject(mapWith); + + dataSetsImpl.testPresenceVariablePuisAjout(dataSetModelSwaggerWith,catalogueWithKeywords,empty,empty,empty,empty); + + LangContent langContentLg1 = new LangContent("fr", "contentFR"); + LangContent langContentLg2 = new LangContent("en", "contentEN"); + ArrayList langContentsExpected = new ArrayList<>(); + langContentsExpected.add(langContentLg1); + langContentsExpected.add(langContentLg2); + + assertEquals(langContentsExpected,dataSetModelSwaggerWith.getKeyword()); + + } + + @Test + void testPresenceVariablePuisAjout_KeywordsVide() throws RmesException, JsonProcessingException { + DataSetModelSwagger dataSetModelSwaggerWithout= new DataSetModelSwagger(); + JSONObject empty = new JSONObject(); + + HashMap mapWithout = new HashMap<>(); + mapWithout.put("keywordLg1", ""); + mapWithout.put("keywordLg2", ""); + JSONObject catalogueWithoutKeywords = new JSONObject(mapWithout); + + dataSetsImpl.testPresenceVariablePuisAjout(dataSetModelSwaggerWithout,catalogueWithoutKeywords,empty,empty,empty,empty); + + assertEquals(null,dataSetModelSwaggerWithout.getKeyword()); + + } + + @Test void getDataSetByIDDateMiseAJourFalse_shouldReturn404IfInexistentId() throws RmesException { JSONObject mockJSON = new JSONObject(ResponseUtilsTest.EMPTY_JSON_OBJECT);