From c512a31b720f604eaf89758c603b6d6be667e0b7 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Tue, 6 Dec 2022 01:57:52 +0200 Subject: [PATCH] XmlValidationResponse.java: Added XmlValidationResponse class for structured results including validationScore and fairScore | ValidatorController.java: Return results as XmlValidationResponse. --- .../controllers/ValidatorController.java | 32 +++++++++++++----- .../validatorapi/entities/RuleInfo.java | 1 - .../entities/XmlValidationResponse.java | 33 +++++++++++++++++++ 3 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 src/main/java/eu/dnetlib/validatorapi/entities/XmlValidationResponse.java diff --git a/src/main/java/eu/dnetlib/validatorapi/controllers/ValidatorController.java b/src/main/java/eu/dnetlib/validatorapi/controllers/ValidatorController.java index 0f9f5e3..3b61493 100644 --- a/src/main/java/eu/dnetlib/validatorapi/controllers/ValidatorController.java +++ b/src/main/java/eu/dnetlib/validatorapi/controllers/ValidatorController.java @@ -5,6 +5,7 @@ import eu.dnetlib.validator2.validation.guideline.Guideline; import eu.dnetlib.validator2.validation.guideline.StandardResult; import eu.dnetlib.validator2.validation.guideline.openaire.*; import eu.dnetlib.validatorapi.entities.RuleInfo; +import eu.dnetlib.validatorapi.entities.XmlValidationResponse; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.web.bind.annotation.*; @@ -26,10 +27,11 @@ public class ValidatorController { @RequestMapping(value = {"/validate"}, method = RequestMethod.POST) // public List validate(@RequestParam(name = "guidelines") String guidelinesProfileName, @RequestBody String xml) { - public List validate(@RequestParam(name = "guidelines") String guidelinesProfileName, @RequestBody String xml) { + public XmlValidationResponse validate(@RequestParam(name = "guidelines") String guidelinesProfileName, @RequestBody String xml) { log.debug(xml); List resultMessages = new ArrayList<>(); List resultRules = new ArrayList<>(); + XmlValidationResponse xmlValidationResponse = new XmlValidationResponse(); AbstractOpenAireProfile profile = null; AbstractOpenAireProfile fairProfile = null; @@ -83,6 +85,15 @@ public class ValidatorController { resultRules.add(ruleInfo); } + String printout = scorePerDoc.entrySet().stream(). + map(entry -> { + xmlValidationResponse.setValidationScore(entry.getValue().toString()); + + resultMessages.add("score: " + entry.getValue()); + return entry.getValue() + ": " + entry.getKey(); + }).collect(Collectors.joining("\n")); + log.debug("\n\nPrinting scorePerDoc..."); + log.debug(printout); } if(fairProfile != null) { @@ -110,6 +121,15 @@ public class ValidatorController { resultRules.add(ruleInfo); } } + String printout = scorePerDoc.entrySet().stream(). + map(entry -> { + xmlValidationResponse.setFairScore(entry.getValue().toString()); + + resultMessages.add("fair score: " + entry.getValue()); + return entry.getValue() + ": " + entry.getKey(); + }).collect(Collectors.joining("\n")); + log.debug("\n\nPrinting fair scorePerDoc..."); + log.debug(printout); } } catch(Exception e) { @@ -118,16 +138,10 @@ public class ValidatorController { e.printStackTrace(); resultMessages.add("Error processing input"); } - String printout = scorePerDoc.entrySet().stream(). - map(entry -> { - resultMessages.add("score: " + entry.getValue()); - return entry.getValue() + ": " + entry.getKey(); - }).collect(Collectors.joining("\n")); - log.debug("\n\nPrinting scorePerDoc..."); - log.debug(printout); // return resultMessages; - return resultRules; + xmlValidationResponse.setRules(resultRules); + return xmlValidationResponse; } @RequestMapping(method = RequestMethod.POST, value = {"/validate-file"}) diff --git a/src/main/java/eu/dnetlib/validatorapi/entities/RuleInfo.java b/src/main/java/eu/dnetlib/validatorapi/entities/RuleInfo.java index 4e775d9..5cc06b3 100644 --- a/src/main/java/eu/dnetlib/validatorapi/entities/RuleInfo.java +++ b/src/main/java/eu/dnetlib/validatorapi/entities/RuleInfo.java @@ -9,7 +9,6 @@ import java.util.List; public class RuleInfo { String name; String description; -// Guideline.Result result; List warnings; List errors; String internalError; diff --git a/src/main/java/eu/dnetlib/validatorapi/entities/XmlValidationResponse.java b/src/main/java/eu/dnetlib/validatorapi/entities/XmlValidationResponse.java new file mode 100644 index 0000000..6f1c86f --- /dev/null +++ b/src/main/java/eu/dnetlib/validatorapi/entities/XmlValidationResponse.java @@ -0,0 +1,33 @@ +package eu.dnetlib.validatorapi.entities; + +import java.util.List; + +public class XmlValidationResponse { + String validationScore; + String fairScore; + List rules; + + public String getValidationScore() { + return validationScore; + } + + public void setValidationScore(String validationScore) { + this.validationScore = validationScore; + } + + public String getFairScore() { + return fairScore; + } + + public void setFairScore(String fairScore) { + this.fairScore = fairScore; + } + + public List getRules() { + return rules; + } + + public void setRules(List rules) { + this.rules = rules; + } +}