From 361a389f9b933720075ab21b5b1ea60a386f790e Mon Sep 17 00:00:00 2001 From: Gianluca D'Agosta Date: Wed, 27 Jul 2022 14:04:01 +0200 Subject: [PATCH] Updates on query management --- .../controller/DataController.java | 54 ++++++++++---- .../data/InputParameters.java | 7 +- .../service/data/DataService.java | 74 +++++++++++++++++++ .../service/data/IDataService.java | 15 ++++ .../ParametricQueryManager.java | 4 +- 5 files changed, 134 insertions(+), 20 deletions(-) create mode 100644 src/main/java/it/enea/xlab/GECORegistration/service/data/DataService.java create mode 100644 src/main/java/it/enea/xlab/GECORegistration/service/data/IDataService.java diff --git a/src/main/java/it/enea/xlab/GECORegistration/controller/DataController.java b/src/main/java/it/enea/xlab/GECORegistration/controller/DataController.java index 405cf59..b814b29 100644 --- a/src/main/java/it/enea/xlab/GECORegistration/controller/DataController.java +++ b/src/main/java/it/enea/xlab/GECORegistration/controller/DataController.java @@ -76,6 +76,8 @@ import it.enea.xlab.GECORegistration.model.parametricQuery.LocalQueryParameter; import it.enea.xlab.GECORegistration.model.parametricQuery.ParametricQuery; import it.enea.xlab.GECORegistration.model.user.User; import it.enea.xlab.GECORegistration.service.data.DataInterface; +import it.enea.xlab.GECORegistration.service.data.DataService; +import it.enea.xlab.GECORegistration.service.data.IDataService; import it.enea.xlab.GECORegistration.service.identityManager.IEncryptionManager; import it.enea.xlab.GECORegistration.service.identityManager.IIdpClientManager; import it.enea.xlab.GECORegistration.service.parametricQuery.LocalQueryParameterInterface; @@ -123,6 +125,9 @@ public class DataController { @Autowired DTOManager dtoManager; + + @Autowired + IDataService dataService; @Value("${spring.jackson.time-zone}") private String timeZone; @@ -204,29 +209,46 @@ public class DataController { @POST @PostMapping("/data/getData") public ResponseEntity getData( - @RequestBody InputParameters inputData, + @RequestBody Map inputData, @RequestHeader(name = "Authorization", required=true) String token, @RequestHeader(name = "Content-Language", required=false, defaultValue="it_IT") String language) { - - if (idpClientManager.isValid(token)) { - UserDto userdto = idpClientManager.getUserFromToken(token); - - User user = userInterface.findBySubject(userdto.getUuid()); + log.info("Inputdata:" + inputData); + ResultWithMetadata data = dataService.getData(inputData, token, language); + return new ResponseEntity<>(data, HttpStatus.OK); - inputData.setUserid(user.getUserid().intValue()); + } + + + @POST + @PostMapping("/data/getData_old") + public ResponseEntity getDataold( + @RequestBody InputParameters inputData, + @RequestHeader(name = "Authorization", required=true) String token, + @RequestHeader(name = "Content-Language", required=false, defaultValue="it_IT") String language) + { - - }else { - log.info("Warning: token is not valid"); - } - - log.info("Input data:" + inputData.toString()); +// if (idpClientManager.isValid(token)) { +// +// UserDto userdto = idpClientManager.getUserFromToken(token); +// +// User user = userInterface.findBySubject(userdto.getUuid()); +// +// inputData.setUserid(user.getUserid().intValue()); +// +// +// }else { +// log.info("Warning: token is not valid"); +// } +// +// log.info("Input data:" + inputData.toString()); +// +// ParametricQuery pq = pqueryInterface.findByQueryid(new Long(inputData.getQueryid())); +// ResultWithMetadata data = pqm.executeQuery(pq, inputData.getParameters(), language); + log.info(inputData.toString()); + ResultWithMetadata data = null; //dataService.getData(inputData, token, language); - ParametricQuery pq = pqueryInterface.findByQueryid(new Long(inputData.getQueryid())); - ResultWithMetadata data = pqm.executeQuery(pq, inputData.getParameters(), language); - return new ResponseEntity<>(data, HttpStatus.OK); } diff --git a/src/main/java/it/enea/xlab/GECORegistration/data/InputParameters.java b/src/main/java/it/enea/xlab/GECORegistration/data/InputParameters.java index 2f979e1..760ed79 100644 --- a/src/main/java/it/enea/xlab/GECORegistration/data/InputParameters.java +++ b/src/main/java/it/enea/xlab/GECORegistration/data/InputParameters.java @@ -9,14 +9,14 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Getter; +import lombok.ToString; +import lombok.extern.log4j.Log4j2; @JsonInclude(JsonInclude.Include.NON_NULL) @Getter +@Log4j2 public class InputParameters { - /** - * - */ @JsonInclude(JsonInclude.Include.NON_NULL) private Integer communityid; @JsonInclude(JsonInclude.Include.NON_NULL) @@ -76,6 +76,7 @@ public class InputParameters { public void setParameters(Map otherParameters) { for (String key : otherParameters.keySet()) { + log.info(key, otherParameters.get(key)); if(otherParameters.get(key) != null ) { this.parameters.put(key.trim(), otherParameters.get(key).toString()); } diff --git a/src/main/java/it/enea/xlab/GECORegistration/service/data/DataService.java b/src/main/java/it/enea/xlab/GECORegistration/service/data/DataService.java new file mode 100644 index 0000000..2f10bc6 --- /dev/null +++ b/src/main/java/it/enea/xlab/GECORegistration/service/data/DataService.java @@ -0,0 +1,74 @@ +package it.enea.xlab.GECORegistration.service.data; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import it.enea.scp.idp.sdk.model.UserDto; +import it.enea.xlab.GECORegistration.data.InputParameters; +import it.enea.xlab.GECORegistration.model.parametricQuery.ParametricQuery; +import it.enea.xlab.GECORegistration.model.user.User; +import it.enea.xlab.GECORegistration.service.identityManager.IIdpClientManager; +import it.enea.xlab.GECORegistration.service.parametricQuery.LocalQueryParameterInterface; +import it.enea.xlab.GECORegistration.service.parametricQuery.ParametricQueryInterface; +import it.enea.xlab.GECORegistration.service.parametricQuery.ParametricQueryManager; +import it.enea.xlab.GECORegistration.service.parametricQuery.ParametricQueryManager.ResultWithMetadata; +import it.enea.xlab.GECORegistration.service.user.NewUserInterface; +import lombok.extern.log4j.Log4j2; + + +@Service +@Log4j2 +public class DataService implements IDataService { + @Autowired + LocalQueryParameterInterface lqpInterface; + + @Autowired + NewUserInterface userInterface; + + + @Autowired + ParametricQueryInterface pqueryInterface; + + + @Autowired + ParametricQueryManager pqm; + + @Autowired + IIdpClientManager idpClientManager; + + @Override + public ResultWithMetadata getData( + Map inputData, + String token, + String language) + { + + log.info("Input data:" + inputData.toString()); + if (idpClientManager.isValid(token)) { + + UserDto userdto = idpClientManager.getUserFromToken(token); + + User user = userInterface.findBySubject(userdto.getUuid()); + + inputData.put("userid", user.getUserid().toString()); + + //inputData.setUserid(user.getUserid().intValue()); + + + }else { + log.info("Warning: token is not valid"); + } + + + + ParametricQuery pq = pqueryInterface.findByQueryid(new Long(inputData.get("queryid"))); + ResultWithMetadata data = pqm.executeQuery(pq, inputData, language); + + return data; + + } + +} + diff --git a/src/main/java/it/enea/xlab/GECORegistration/service/data/IDataService.java b/src/main/java/it/enea/xlab/GECORegistration/service/data/IDataService.java new file mode 100644 index 0000000..e2f152f --- /dev/null +++ b/src/main/java/it/enea/xlab/GECORegistration/service/data/IDataService.java @@ -0,0 +1,15 @@ +package it.enea.xlab.GECORegistration.service.data; + +import java.util.Map; + +import it.enea.xlab.GECORegistration.service.parametricQuery.ParametricQueryManager.ResultWithMetadata; + +public interface IDataService { + + + + public ResultWithMetadata getData( + Map inputData, + String token, + String language); +} diff --git a/src/main/java/it/enea/xlab/GECORegistration/service/parametricQuery/ParametricQueryManager.java b/src/main/java/it/enea/xlab/GECORegistration/service/parametricQuery/ParametricQueryManager.java index 0d691fc..6a388e6 100644 --- a/src/main/java/it/enea/xlab/GECORegistration/service/parametricQuery/ParametricQueryManager.java +++ b/src/main/java/it/enea/xlab/GECORegistration/service/parametricQuery/ParametricQueryManager.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Component; import it.enea.xlab.GECORegistration.model.parametricQuery.LocalQueryParameter; import it.enea.xlab.GECORegistration.model.parametricQuery.ParametricQuery; +import lombok.ToString; import lombok.extern.log4j.Log4j2; @Component @@ -224,7 +225,8 @@ public class ParametricQueryManager { return 0; } - + +@ToString public class ResultWithMetadata { List> metadata; List> result; -- GitLab