Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
Expand All @@ -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));
Expand All @@ -112,7 +116,7 @@ private IdUriLabel createIdUriLabel(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())) {
Expand All @@ -121,34 +125,12 @@ private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, Rapport
contenuLg1.setTexte("");
}
contenuLg1.setLangue("fr");
if (rubriqueDTO.hasDocLg1()) {
List<DocumentDTO> 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<LocalisedLabel> 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<LocalisedLabel> 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 (StringUtils.isNotEmpty(rubriqueDTO.labelLg2())||rubriqueDTO.hasDocLg2()){
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())) {
Expand All @@ -157,52 +139,51 @@ private Rubrique addRichText(RubriqueDTO rubriqueDTO, Rubrique rubrique, Rapport
contenuLg2.setTexte("");
}
contenuLg2.setLangue("en");

if (rubriqueDTO.hasDocLg2()) {
List<DocumentDTO> 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<LocalisedLabel> 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<LocalisedLabel> label = createListLangueContenu(labelFr,null);
document.label(label);
}

document.setDateMiseAJour(documentDTO.dateMiseAJour());
document.setLangue(documentDTO.langue());
document.setUrl(documentDTO.url());
contenuLg2.addDocumentsItem(document);
}
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<DocumentDTO> 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<LocalisedLabel> 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<LocalisedLabel> 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());
rubriqueCodeList.setUri(URI.create(rubriqueDTO.codeUri()));
if (rubriqueDTO.labelObjLg1() != null && rubriqueDTO.labelObjLg2() != null) {
List<LocalisedLabel> 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<LocalisedLabel> 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 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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down