FINERACT-2169: Apply dto in LoanCollateralManagementApiResource

This commit is contained in:
oleksandr.masliuk
2025-04-03 12:09:08 +02:00
committed by Adam Saghy
parent 4bbfe6a5f4
commit b9cfa470ff
2 changed files with 9 additions and 24 deletions
@@ -32,11 +32,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.domain.CommandWrapper;
import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.CommandWrapperBuilder;
import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
import org.apache.fineract.infrastructure.codes.service.CodeValueReadPlatformService;
import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.portfolio.collateralmanagement.data.LoanCollateralResponseData; import org.apache.fineract.portfolio.collateralmanagement.data.LoanCollateralResponseData;
import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementReadPlatformService; import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementReadPlatformService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -47,24 +43,19 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor @RequiredArgsConstructor
public class LoanCollateralManagementApiResource { public class LoanCollateralManagementApiResource {
private final DefaultToApiJsonSerializer<LoanCollateralResponseData> apiJsonSerializerService;
private final ApiRequestParameterHelper apiRequestParameterHelper;
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService; private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
private final PlatformSecurityContext context;
private final LoanCollateralManagementReadPlatformService loanCollateralManagementReadPlatformService; private final LoanCollateralManagementReadPlatformService loanCollateralManagementReadPlatformService;
private final CodeValueReadPlatformService codeValueReadPlatformService;
@DELETE @DELETE
@Path("{id}") @Path("{id}")
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Operation(description = "Delete Loan Collateral", summary = "Delete Loan Collateral") @Operation(description = "Delete Loan Collateral", summary = "Delete Loan Collateral")
public String deleteLoanCollateral(@PathParam("loanId") @Parameter(description = "loanId") final Long loanId, public CommandProcessingResult deleteLoanCollateral(@PathParam("loanId") @Parameter(description = "loanId") final Long loanId,
@PathParam("id") @Parameter(description = "loan collateral id") final Long id) { @PathParam("id") @Parameter(description = "loan collateral id") final Long id) {
final CommandWrapper commandWrapper = new CommandWrapperBuilder().deleteLoanCollateral(loanId, id).build(); final CommandWrapper commandWrapper = new CommandWrapperBuilder().deleteLoanCollateral(loanId, id).build();
final CommandProcessingResult commandProcessingResult = this.commandsSourceWritePlatformService.logCommandSource(commandWrapper); return this.commandsSourceWritePlatformService.logCommandSource(commandWrapper);
return this.apiJsonSerializerService.serialize(commandProcessingResult);
} }
@GET @GET
@@ -72,10 +63,9 @@ public class LoanCollateralManagementApiResource {
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON }) @Consumes({ MediaType.APPLICATION_JSON })
@Operation(description = "Get Loan Collateral Details", summary = "Get Loan Collateral Details") @Operation(description = "Get Loan Collateral Details", summary = "Get Loan Collateral Details")
public String getLoanCollateral(@PathParam("collateralId") @Parameter(description = "collateralId") final Long collateralId) { public LoanCollateralResponseData getLoanCollateral(
final LoanCollateralResponseData loanCollateralResponseData = this.loanCollateralManagementReadPlatformService @PathParam("collateralId") @Parameter(description = "collateralId") final Long collateralId) {
.getLoanCollateralResponseData(collateralId); return this.loanCollateralManagementReadPlatformService.getLoanCollateralResponseData(collateralId);
return this.apiJsonSerializerService.serialize(loanCollateralResponseData);
} }
} }
@@ -19,9 +19,13 @@
package org.apache.fineract.portfolio.collateralmanagement.data; package org.apache.fineract.portfolio.collateralmanagement.data;
import java.math.BigDecimal; import java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.fineract.portfolio.loanaccount.data.LoanCollateralManagementData; import org.apache.fineract.portfolio.loanaccount.data.LoanCollateralManagementData;
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement; import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement;
@Getter
@AllArgsConstructor
public final class LoanCollateralResponseData { public final class LoanCollateralResponseData {
private Long collateralId; private Long collateralId;
@@ -34,15 +38,6 @@ public final class LoanCollateralResponseData {
private Long clientCollateralId; private Long clientCollateralId;
private LoanCollateralResponseData(final Long collateralId, final BigDecimal quantity, final BigDecimal total,
final BigDecimal totalCollateral, final Long clientCollateralId) {
this.collateralId = collateralId;
this.quantity = quantity;
this.total = total;
this.totalCollateral = totalCollateral;
this.clientCollateralId = clientCollateralId;
}
public static LoanCollateralResponseData instanceOf(final LoanCollateralManagement loanCollateralManagement, final BigDecimal total, public static LoanCollateralResponseData instanceOf(final LoanCollateralManagement loanCollateralManagement, final BigDecimal total,
final BigDecimal totalCollateral) { final BigDecimal totalCollateral) {
return new LoanCollateralResponseData(loanCollateralManagement.getId(), loanCollateralManagement.getQuantity(), total, return new LoanCollateralResponseData(loanCollateralManagement.getId(), loanCollateralManagement.getQuantity(), total,