ResponseEntity generateReport()

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);
    }
  }