From 41ceffda2ad97dcd8bb8a008893ceea2f77d27e6 Mon Sep 17 00:00:00 2001 From: Katerina Date: Mon, 3 Jul 2023 10:57:13 +0300 Subject: [PATCH] Change to return error status and internal error in the APIs --- .../controllers/ReportController.java | 64 +++++++++---------- .../validatorapi/entities/SummaryResult.java | 13 +++- .../ValidationResultRepository.java | 10 +-- 3 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/main/java/eu/dnetlib/validatorapi/controllers/ReportController.java b/src/main/java/eu/dnetlib/validatorapi/controllers/ReportController.java index 1a953d9..a52b20a 100644 --- a/src/main/java/eu/dnetlib/validatorapi/controllers/ReportController.java +++ b/src/main/java/eu/dnetlib/validatorapi/controllers/ReportController.java @@ -40,38 +40,6 @@ public class ReportController { return validationResultRepository.getFullSummaryResult(jobId); } - /* - @RequestMapping(value = {"getErrorsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public Map> getErrors(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){ - List resultList = validationIssueRepository.getAllErrorsRecordUrlsByRuleName(jobId, ruleName); - return extractRecordsGroupedByRule(resultList); - } - - @RequestMapping(value = {"getWarningsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public Map> getWarningsReport(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){ - List resultList = validationIssueRepository.getAllWarningsRecordUrlsByRuleName(jobId, ruleName); - return extractRecordsGroupedByRule(resultList); - } - - private Map> extractRecordsGroupedByRule(List resultList) { - Map> recordUrlsByIssueText = new HashMap<>(); - - for (Object[] result : resultList) { - String issueText = (String) result[0]; - String recordUrl = (String) result[1]; - - List recordUrls = recordUrlsByIssueText.get(issueText); - if (recordUrls == null) { - recordUrls = new ArrayList<>(); - recordUrlsByIssueText.put(issueText, recordUrls); - } - recordUrls.add(recordUrl); - } - return recordUrlsByIssueText; - } - - */ - @RequestMapping(value = {"getWarningsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) private List getWarningDescriptors(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){ @@ -113,4 +81,36 @@ public class ReportController { return issueDescriptors; } + + /* + @RequestMapping(value = {"getErrorsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public Map> getErrors(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){ + List resultList = validationIssueRepository.getAllErrorsRecordUrlsByRuleName(jobId, ruleName); + return extractRecordsGroupedByRule(resultList); + } + + @RequestMapping(value = {"getWarningsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public Map> getWarningsReport(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){ + List resultList = validationIssueRepository.getAllWarningsRecordUrlsByRuleName(jobId, ruleName); + return extractRecordsGroupedByRule(resultList); + } + + private Map> extractRecordsGroupedByRule(List resultList) { + Map> recordUrlsByIssueText = new HashMap<>(); + + for (Object[] result : resultList) { + String issueText = (String) result[0]; + String recordUrl = (String) result[1]; + + List recordUrls = recordUrlsByIssueText.get(issueText); + if (recordUrls == null) { + recordUrls = new ArrayList<>(); + recordUrlsByIssueText.put(issueText, recordUrls); + } + recordUrls.add(recordUrl); + } + return recordUrlsByIssueText; + } + + */ } \ No newline at end of file diff --git a/src/main/java/eu/dnetlib/validatorapi/entities/SummaryResult.java b/src/main/java/eu/dnetlib/validatorapi/entities/SummaryResult.java index 3f936c1..c84b403 100644 --- a/src/main/java/eu/dnetlib/validatorapi/entities/SummaryResult.java +++ b/src/main/java/eu/dnetlib/validatorapi/entities/SummaryResult.java @@ -9,6 +9,7 @@ public class SummaryResult { @Id String rule_name; int rule_weight; + String internal_error; String rule_status; long passed_records; long failed_records; @@ -28,9 +29,11 @@ public class SummaryResult { this.failed_records = failed_records; } - public SummaryResult(String rule_name, int rule_weight, long passed_records, long failed_records, String rule_status, boolean has_errors, boolean has_warnings) { + public SummaryResult(String rule_name, int rule_weight, String internal_error, long passed_records, + long failed_records, String rule_status, boolean has_errors, boolean has_warnings) { this.rule_name = rule_name; this.rule_weight = rule_weight; + this.internal_error = internal_error; this.rule_status = rule_status; this.passed_records = passed_records; this.failed_records = failed_records; @@ -54,6 +57,14 @@ public class SummaryResult { this.rule_weight = rule_weight; } + public String getInternal_error() { + return internal_error; + } + + public void setInternal_error(String internal_error) { + this.internal_error = internal_error; + } + public long getPassed_records() { return passed_records; } diff --git a/src/main/java/eu/dnetlib/validatorapi/repositories/ValidationResultRepository.java b/src/main/java/eu/dnetlib/validatorapi/repositories/ValidationResultRepository.java index 9e60a47..129cd6d 100644 --- a/src/main/java/eu/dnetlib/validatorapi/repositories/ValidationResultRepository.java +++ b/src/main/java/eu/dnetlib/validatorapi/repositories/ValidationResultRepository.java @@ -25,12 +25,12 @@ public interface ValidationResultRepository extends JpaRepository 0 THEN 'ERROR'" + + " WHEN COUNT(DISTINCT CASE WHEN vr.status = 'WARNING' THEN vr.ruleName END) > 0 THEN 'WARNING'" + " ELSE 'SUCCESS'" + " END " + "FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult vr WHERE vr.ruleName = sr.ruleName)," + @@ -38,7 +38,7 @@ public interface ValidationResultRepository extends JpaRepository 0 THEN TRUE ELSE FALSE END AS hasWarnings)" + "FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult sr " + "WHERE sr.validationJobId = :id " + - "GROUP BY sr.ruleName, sr.ruleWeight") + "GROUP BY sr.ruleName, sr.ruleWeight, sr.internalError") List getFullSummaryResult(@Param("id") int validationJobId);