From 413ae8942d608fd7f6c6dd447f0ae19f94f5bb13 Mon Sep 17 00:00:00 2001 From: Dhroov Sankla Date: Mon, 22 Jun 2026 18:13:43 +0530 Subject: [PATCH] FINERACT-2651: Refactor MixReportApiResource to return type-safe Response wrapper --- .../apache/fineract/mix/api/MixReportApiResource.java | 9 +++++---- .../fineract/mix/service/MixReportXBRLBuilder.java | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fineract-mix/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java b/fineract-mix/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java index 8e876b8de63..cd226a34da7 100644 --- a/fineract-mix/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java +++ b/fineract-mix/src/main/java/org/apache/fineract/mix/api/MixReportApiResource.java @@ -44,12 +44,13 @@ public class MixReportApiResource { @GET @Produces({ MediaType.APPLICATION_XML }) @Operation(summary = "Retrieve Mix XBRL report", operationId = "retrieveMixReport") - public String retrieveXBRLReport(@QueryParam("startDate") final Date startDate, @QueryParam("endDate") final Date endDate, - @QueryParam("currency") final String currency) { + public jakarta.ws.rs.core.Response retrieveXBRLReport(@QueryParam("startDate") final Date startDate, + @QueryParam("endDate") final Date endDate, @QueryParam("currency") final String currency) { final var data = xbrlResultService.getXBRLResult(startDate, endDate, currency); - // TODO: make this type safe? - return this.xbrlBuilder.build(data); + String xmlPayload = this.xbrlBuilder.build(data); + + return jakarta.ws.rs.core.Response.ok().entity(xmlPayload).type(MediaType.APPLICATION_XML_TYPE).build(); } } diff --git a/fineract-mix/src/main/java/org/apache/fineract/mix/service/MixReportXBRLBuilder.java b/fineract-mix/src/main/java/org/apache/fineract/mix/service/MixReportXBRLBuilder.java index 1d97f3210aa..af868583a17 100644 --- a/fineract-mix/src/main/java/org/apache/fineract/mix/service/MixReportXBRLBuilder.java +++ b/fineract-mix/src/main/java/org/apache/fineract/mix/service/MixReportXBRLBuilder.java @@ -50,7 +50,6 @@ public class MixReportXBRLBuilder { private final MixReportXBRLNamespaceReadService readNamespaceService; - // TODO: we should do this with JAXB public String build(final MixReportXBRLData xbrlData) { return this.build(xbrlData.getResultMap(), xbrlData.getStartDate(), xbrlData.getEndDate(), xbrlData.getCurrency()); }