XmlValidationResponse.java: Added XmlValidationResponse class for structured results including validationScore and fairScore | ValidatorController.java: Return results as XmlValidationResponse.

This commit is contained in:
Konstantina Galouni 2022-12-06 01:57:52 +02:00
parent e28198e1d7
commit c512a31b72
3 changed files with 56 additions and 10 deletions

View File

@ -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<String> validate(@RequestParam(name = "guidelines") String guidelinesProfileName, @RequestBody String xml) {
public List<RuleInfo> validate(@RequestParam(name = "guidelines") String guidelinesProfileName, @RequestBody String xml) {
public XmlValidationResponse validate(@RequestParam(name = "guidelines") String guidelinesProfileName, @RequestBody String xml) {
log.debug(xml);
List<String> resultMessages = new ArrayList<>();
List<RuleInfo> 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"})

View File

@ -9,7 +9,6 @@ import java.util.List;
public class RuleInfo {
String name;
String description;
// Guideline.Result result;
List<String> warnings;
List<String> errors;
String internalError;

View File

@ -0,0 +1,33 @@
package eu.dnetlib.validatorapi.entities;
import java.util.List;
public class XmlValidationResponse {
String validationScore;
String fairScore;
List<RuleInfo> 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<RuleInfo> getRules() {
return rules;
}
public void setRules(List<RuleInfo> rules) {
this.rules = rules;
}
}