in service/src/main/java/org/apache/fineract/cn/reporting/service/rest/ReportingRestController.java [136:157]
ResponseEntity<ReportPage> generateReport(@PathVariable("category") final String category,
@PathVariable("identifier") final String identifier,
@RequestBody final ReportRequest reportRequest,
@RequestParam(value = "pageIndex", required = false) final Integer pageIndex,
@RequestParam(value = "size", required = false) final Integer size) {
final Optional<ReportSpecification> optionalReportSpecification =
this.reportSpecificationProvider.getReportSpecification(category, identifier);
if (optionalReportSpecification.isPresent()) {
final ReportSpecification reportSpecification = optionalReportSpecification.get();
try {
reportSpecification.validate(reportRequest);
} catch (final IllegalArgumentException iaex) {
throw ServiceException.badRequest(iaex.getMessage());
}
return ResponseEntity.ok(reportSpecification.generateReport(reportRequest, pageIndex, size));
} else {
throw ServiceException.notFound("Report {0} not found.", identifier);
}
}