Skip to content

Commit a17efcb

Browse files
authored
Merge pull request #417 from InseeFr/feat/rapport-qualite
Feat/rapport qualite
2 parents 9db0a48 + 2dba69d commit a17efcb

28 files changed

+1619
-191
lines changed

magma-diffusion-impl/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
<dependency>
8686
<groupId>org.testcontainers</groupId>
8787
<artifactId>testcontainers</artifactId>
88-
<version>1.21.3</version>
88+
<version>1.21.4</version>
8989
</dependency>
9090
<dependency>
9191
<groupId>io.github.fbibonne</groupId>
@@ -97,6 +97,10 @@
9797
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
9898
<version>${springdoc.version}</version>
9999
</dependency>
100+
<dependency>
101+
<groupId>com.fasterxml.jackson.dataformat</groupId>
102+
<artifactId>jackson-dataformat-xml</artifactId>
103+
</dependency>
100104
</dependencies>
101105

102106
<build>

magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/api/ConceptsEndpoints.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33

44
import fr.insee.rmes.magma.diffusion.api.requestprocessor.RequestProcessor;
5-
import fr.insee.rmes.magma.diffusion.model.Concept;
6-
import fr.insee.rmes.magma.diffusion.model.LangueContenu;
7-
import fr.insee.rmes.magma.diffusion.model.ConceptForList;
8-
import fr.insee.rmes.magma.diffusion.model.NearbyConcept;
5+
import fr.insee.rmes.magma.diffusion.model.*;
96
import fr.insee.rmes.magma.diffusion.queries.parameters.ConceptsRequestParametizer;
107
import fr.insee.rmes.magma.diffusion.utils.ConceptDTO;
118
import fr.insee.rmes.magma.diffusion.utils.EndpointsUtils;
@@ -42,10 +39,10 @@ public ResponseEntity<Concept> getconcept(String id) {
4239
}
4340

4441
if (conceptDTO.getHasIntitulesAlternatifs()){
45-
List<LangueContenu> intitulesAlternatifs = requestProcessor.queryToFindConceptIntitulesAlternatifs()
42+
List<LocalisedLabel> intitulesAlternatifs = requestProcessor.queryToFindConceptIntitulesAlternatifs()
4643
.with(new ConceptsRequestParametizer(conceptDTO.getUri()))
4744
.executeQuery()
48-
.listResult(LangueContenu.class)
45+
.listResult(LocalisedLabel.class)
4946
.result();
5047

5148
//TODO modifier nom de ConceptsNearbyRequestParametizer + supprimer le paramètre TypeOrigine ?
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package fr.insee.rmes.magma.diffusion.api;
2+
3+
import fr.insee.rmes.magma.diffusion.api.requestprocessor.RequestProcessor;
4+
import fr.insee.rmes.magma.diffusion.model.RapportQualite;
5+
import fr.insee.rmes.magma.diffusion.queries.parameters.OperationRequestParametizer;
6+
import fr.insee.rmes.magma.diffusion.queries.parameters.OperationRubriquesRequestParametizer;
7+
import fr.insee.rmes.magma.diffusion.services.RapportQualiteService;
8+
import fr.insee.rmes.magma.diffusion.utils.EndpointsUtils;
9+
import fr.insee.rmes.magma.diffusion.utils.RapportQualiteDTO;
10+
import fr.insee.rmes.magma.diffusion.utils.RubriqueDTO;
11+
import org.springframework.http.ResponseEntity;
12+
import org.springframework.web.bind.annotation.RestController;
13+
14+
import java.util.List;
15+
@RestController
16+
public class OperationsEndpoints implements OperationsApi {
17+
18+
private final RequestProcessor requestProcessor;
19+
private final RapportQualiteService rapportQualiteService;
20+
21+
public OperationsEndpoints(RequestProcessor requestProcessor, RapportQualiteService rapportQualiteService) {
22+
this.requestProcessor = requestProcessor;
23+
this.rapportQualiteService = rapportQualiteService;
24+
}
25+
26+
27+
@Override
28+
public ResponseEntity<RapportQualite> getRapportQualiteByCode(String idSims) {
29+
RapportQualiteDTO rapportQualiteDTO = requestProcessor.queryToFindRapportQualite()
30+
.with(new OperationRequestParametizer(idSims))
31+
.executeQuery()
32+
.singleResult(RapportQualiteDTO.class)
33+
.result();
34+
35+
if (rapportQualiteDTO.uri() != null) {
36+
String LG1_CL = "http://id.insee.fr/codes/langue/fr";
37+
String LG2_CL = "http://id.insee.fr/codes/langue/en";
38+
39+
List<RubriqueDTO> rubriqueList = requestProcessor.queryToFindRubriques()
40+
.with(new OperationRubriquesRequestParametizer(rapportQualiteDTO.id(), LG1_CL, LG2_CL))
41+
.executeQuery()
42+
.listResult(RubriqueDTO.class)
43+
.result();
44+
rapportQualiteDTO = rapportQualiteDTO.withRubriqueDTOList(rubriqueList);
45+
}
46+
47+
48+
RapportQualite rapportQualite = rapportQualiteService.transformDTOenRapportQualite(rapportQualiteDTO, requestProcessor);
49+
50+
return EndpointsUtils.toResponseEntity(rapportQualite);
51+
52+
}
53+
54+
}
55+
56+
57+

magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/api/requestprocessor/RequestProcessor.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ public QueryBuilder queryforFindPaysSuivants() {
9595

9696
public QueryBuilder queryToFindIntersections() {return new QueryBuilder(TERRITOIRES_LIES, this);}
9797

98+
public QueryBuilder queryToFindRapportQualite (){return new QueryBuilder(RAPPORT_QUALITE,this);}
99+
100+
public QueryBuilder queryToFindRubriques(){return new QueryBuilder(RUBRIQUES,this);}
101+
102+
public QueryBuilder queryToFindDocuments(){return new QueryBuilder(DOCUMENTS,this);}
103+
98104
public record QueryBuilder(String queryPath, RequestProcessor requestProcessor) {
99105
public ExecutableQuery with(AscendantsDescendantsRequestParametizer ascendantsDescendantsRequestParametizer) {
100106
return new ExecutableQuery(requestProcessor.queryBuilder().build(ascendantsDescendantsRequestParametizer.toParameters(), queryPath), requestProcessor);
@@ -134,7 +140,20 @@ public ExecutableQuery with(ClassificationRequestParametizer classificationReque
134140
);
135141
}
136142

143+
public ExecutableQuery with(OperationRequestParametizer operationRequestParametizer) {
144+
return new ExecutableQuery(
145+
requestProcessor.queryBuilder().build(operationRequestParametizer.toParameters(), queryPath), requestProcessor);
146+
}
147+
148+
public ExecutableQuery with(OperationRubriquesRequestParametizer operationRubriquesRequestParametizer) {
149+
return new ExecutableQuery(
150+
requestProcessor.queryBuilder().build(operationRubriquesRequestParametizer.toParameters(), queryPath), requestProcessor);
151+
}
137152

153+
public ExecutableQuery with(OperationsDocumentsRequestParametizer operationsDocumentsRequestParametizer) {
154+
return new ExecutableQuery(
155+
requestProcessor.queryBuilder().build(operationsDocumentsRequestParametizer.toParameters(), queryPath), requestProcessor);
156+
}
138157
}
139158

140159
public record ExecutableQuery(Query query, RequestProcessor requestProcessor) {

magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/queries/QueryBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public record QueryBuilder(Configuration freemarkerConfiguration) {
3333
public static final String PAYS_PRECEDENTS = "geographie/getPaysPrecedents.ftlh";
3434
public static final String PAYS_SUIVANTS = "geographie/getPaysSuivants.ftlh";
3535
public static final String TERRITOIRES_LIES = "geographie/getTerritoiresLies.ftlh";
36+
public static final String RAPPORT_QUALITE = "operations/getDocumentationTitleByIdSimsQuery.ftlh";
37+
public static final String RUBRIQUES = "operations/getDocumentationRubricsByIdSimsQuery.ftlh";
38+
public static final String DOCUMENTS = "operations/getDocumentsQueryByIdSimsIdRubric.ftlh";
3639
public static final String NOMENCLATURE = "classifications/getClassificationByCode.ftlh";
3740

3841
public Query build(Map<String, Object> parameters, String queryfile) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package fr.insee.rmes.magma.diffusion.queries.parameters;
2+
3+
public record OperationRequestParametizer(String idSims)
4+
implements ParametersForQuery<OperationRequestParametizer> {
5+
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package fr.insee.rmes.magma.diffusion.queries.parameters;
2+
3+
public record OperationRubriquesRequestParametizer(String idSims, String LG1_CL, String LG2_CL)
4+
implements ParametersForQuery<OperationRubriquesRequestParametizer> {
5+
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package fr.insee.rmes.magma.diffusion.queries.parameters;
2+
3+
public record OperationsDocumentsRequestParametizer(String idSims, String idRubric, String LANG)
4+
implements ParametersForQuery<OperationsDocumentsRequestParametizer> {
5+
}
6+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package fr.insee.rmes.magma.diffusion.services;
2+
3+
import fr.insee.rmes.magma.diffusion.api.requestprocessor.RequestProcessor;
4+
import fr.insee.rmes.magma.diffusion.model.RapportQualite;
5+
import fr.insee.rmes.magma.diffusion.utils.RapportQualiteDTO;
6+
7+
public interface RapportQualiteService {
8+
RapportQualite transformDTOenRapportQualite(RapportQualiteDTO rapportQualiteDTO,RequestProcessor requestProcessor);
9+
}

0 commit comments

Comments
 (0)