From 8eca8cbc8cd0083363039268876ee3d1310630d0 Mon Sep 17 00:00:00 2001 From: "oleksandr.masliuk" Date: Tue, 22 Apr 2025 15:52:12 +0300 Subject: [PATCH] FINERACT-2169: Refactor WorkingDaysApiResource - apply dto --- .../api/WorkingDaysApiResource.java | 23 ++++--------------- .../workingdays/data/WorkingDaysData.java | 23 +++++++++++++------ 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java index d1c1be6a3..3cb7555c9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/api/WorkingDaysApiResource.java @@ -20,7 +20,6 @@ package org.apache.fineract.organisation.workingdays.api; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.ArraySchema; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -32,16 +31,12 @@ import jakarta.ws.rs.GET; import jakarta.ws.rs.PUT; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.Context; import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.UriInfo; import lombok.RequiredArgsConstructor; import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; -import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; -import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings; import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.organisation.workingdays.data.WorkingDaysData; @@ -61,20 +56,14 @@ public class WorkingDaysApiResource { private final WorkingDaysReadPlatformService workingDaysReadPlatformService; private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService; private final PlatformSecurityContext context; - private final ApiRequestParameterHelper apiRequestParameterHelper; @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) @Operation(summary = "List Working days", description = "Example Requests:\n" + "\n" + "workingdays") - @ApiResponses({ - @ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = WorkingDaysApiResourceSwagger.GetWorkingDaysResponse.class)))) }) - public String retrieveAll(@Context final UriInfo uriInfo) { + public WorkingDaysData retrieveAll() { this.context.authenticatedUser().validateHasReadPermission(WorkingDaysApiConstants.WORKING_DAYS_RESOURCE_NAME); - final WorkingDaysData workingDaysData = this.workingDaysReadPlatformService.retrieve(); - - final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serialize(settings, workingDaysData); + return this.workingDaysReadPlatformService.retrieve(); } @PUT @@ -102,14 +91,10 @@ public class WorkingDaysApiResource { + "\n" + "Example Request:\n" + "\n" + "workingdays/template") @ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = WorkingDaysApiResourceSwagger.GetWorkingDaysTemplateResponse.class))) }) - public String template(@Context final UriInfo uriInfo) { + public WorkingDaysData template() { this.context.authenticatedUser().validateHasReadPermission(WorkingDaysApiConstants.WORKING_DAYS_RESOURCE_NAME); - final WorkingDaysData repaymentRescheduleOptions = this.workingDaysReadPlatformService.repaymentRescheduleType(); - - final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serialize(settings, repaymentRescheduleOptions, - WorkingDaysApiConstants.WORKING_DAYS_TEMPLATE_PARAMETERS); + return this.workingDaysReadPlatformService.repaymentRescheduleType(); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/data/WorkingDaysData.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/data/WorkingDaysData.java index 294e27a42..ef2e62ab7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/data/WorkingDaysData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/data/WorkingDaysData.java @@ -18,24 +18,33 @@ */ package org.apache.fineract.organisation.workingdays.data; +import java.io.Serial; +import java.io.Serializable; import java.util.Collection; +import lombok.Data; +import lombok.NoArgsConstructor; import org.apache.fineract.infrastructure.core.data.EnumOptionData; -public class WorkingDaysData { +@Data +@NoArgsConstructor +public class WorkingDaysData implements Serializable { - private final Long id; + @Serial + private static final long serialVersionUID = 1L; - private final String recurrence; + private Long id; - private final EnumOptionData repaymentRescheduleType; + private String recurrence; - private final Boolean extendTermForDailyRepayments; + private EnumOptionData repaymentRescheduleType; - private final Boolean extendTermForRepaymentsOnHolidays; + private Boolean extendTermForDailyRepayments; + + private Boolean extendTermForRepaymentsOnHolidays; // template date @SuppressWarnings("unused") - private final Collection repaymentRescheduleOptions; + private Collection repaymentRescheduleOptions; public WorkingDaysData(Long id, String recurrence, EnumOptionData repaymentRescheduleType, Boolean extendTermForDailyRepayments, Boolean extendTermForRepaymentsOnHolidays) {