Change to return error status and internal error in the APIs
This commit is contained in:
parent
97388284f2
commit
41ceffda2a
|
@ -40,38 +40,6 @@ public class ReportController {
|
|||
return validationResultRepository.getFullSummaryResult(jobId);
|
||||
}
|
||||
|
||||
/*
|
||||
@RequestMapping(value = {"getErrorsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public Map<String, List<String>> getErrors(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){
|
||||
List<Object[]> resultList = validationIssueRepository.getAllErrorsRecordUrlsByRuleName(jobId, ruleName);
|
||||
return extractRecordsGroupedByRule(resultList);
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"getWarningsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public Map<String, List<String>> getWarningsReport(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){
|
||||
List<Object[]> resultList = validationIssueRepository.getAllWarningsRecordUrlsByRuleName(jobId, ruleName);
|
||||
return extractRecordsGroupedByRule(resultList);
|
||||
}
|
||||
|
||||
private Map<String, List<String>> extractRecordsGroupedByRule(List<Object[]> resultList) {
|
||||
Map<String, List<String>> recordUrlsByIssueText = new HashMap<>();
|
||||
|
||||
for (Object[] result : resultList) {
|
||||
String issueText = (String) result[0];
|
||||
String recordUrl = (String) result[1];
|
||||
|
||||
List<String> 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<IssueDescriptor> 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<String, List<String>> getErrors(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){
|
||||
List<Object[]> resultList = validationIssueRepository.getAllErrorsRecordUrlsByRuleName(jobId, ruleName);
|
||||
return extractRecordsGroupedByRule(resultList);
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"getWarningsReport"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public Map<String, List<String>> getWarningsReport(@RequestParam(name = "jobId") int jobId, @RequestParam(name = "ruleName") String ruleName){
|
||||
List<Object[]> resultList = validationIssueRepository.getAllWarningsRecordUrlsByRuleName(jobId, ruleName);
|
||||
return extractRecordsGroupedByRule(resultList);
|
||||
}
|
||||
|
||||
private Map<String, List<String>> extractRecordsGroupedByRule(List<Object[]> resultList) {
|
||||
Map<String, List<String>> recordUrlsByIssueText = new HashMap<>();
|
||||
|
||||
for (Object[] result : resultList) {
|
||||
String issueText = (String) result[0];
|
||||
String recordUrl = (String) result[1];
|
||||
|
||||
List<String> recordUrls = recordUrlsByIssueText.get(issueText);
|
||||
if (recordUrls == null) {
|
||||
recordUrls = new ArrayList<>();
|
||||
recordUrlsByIssueText.put(issueText, recordUrls);
|
||||
}
|
||||
recordUrls.add(recordUrl);
|
||||
}
|
||||
return recordUrlsByIssueText;
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -25,12 +25,12 @@ public interface ValidationResultRepository extends JpaRepository<ValidationRule
|
|||
"WHERE vr.validationJobId = :id AND vr.status = 'FAILURE' OR vr.internalError != null")
|
||||
public String getStatus(@Param("id") int validationJobId);
|
||||
|
||||
@Query(value = "SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight," +
|
||||
@Query(value = "SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight, sr.internalError," +
|
||||
"COUNT(CASE WHEN sr.status = 'SUCCESS' THEN 1 END) AS passedRecords," +
|
||||
"COUNT(CASE WHEN sr.status = 'FAILURE' THEN 1 END) AS failedRecords," +
|
||||
"COUNT(CASE WHEN sr.status = 'FAILURE' OR sr.status = 'ERROR' THEN 1 END) AS failedRecords," +
|
||||
"(SELECT CASE" +
|
||||
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'FAILURE' THEN vr.ruleName END) = COUNT(DISTINCT vr.ruleName) THEN 'FAILURE'" +
|
||||
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'ERROR' THEN vr.ruleName END) = COUNT(DISTINCT vr.ruleName) THEN 'ERROR'" +
|
||||
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'ERROR' THEN vr.ruleName END) > 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<ValidationRule
|
|||
"CASE WHEN COUNT(CASE WHEN has_warnings IS TRUE THEN 1 END) > 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<SummaryResult> getFullSummaryResult(@Param("id") int validationJobId);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue