From 6e5c6c491346b390685e82c5d449076143ca30ad Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Wed, 4 Jun 2025 17:41:07 +0200 Subject: [PATCH] FINERACT-2181: No need for explicit serialization --- .../EmbeddableProgressiveLoanScheduleGenerator.java | 4 ++-- .../InterestScheduleModelRepositoryWrapper.java | 2 +- .../InterestScheduleModelRepositoryWrapperImpl.java | 4 ++-- .../service/InternalProgressiveLoanApiResource.java | 10 ++++------ 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/fineract-progressive-loan-embeddable-schedule-generator/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/EmbeddableProgressiveLoanScheduleGenerator.java b/fineract-progressive-loan-embeddable-schedule-generator/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/EmbeddableProgressiveLoanScheduleGenerator.java index f479d20e7..7d8f6ddc8 100644 --- a/fineract-progressive-loan-embeddable-schedule-generator/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/EmbeddableProgressiveLoanScheduleGenerator.java +++ b/fineract-progressive-loan-embeddable-schedule-generator/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/EmbeddableProgressiveLoanScheduleGenerator.java @@ -61,8 +61,8 @@ public class EmbeddableProgressiveLoanScheduleGenerator { } @Override - public String writeInterestScheduleModel(Loan loan, ProgressiveLoanInterestScheduleModel model) { - return ""; + public ProgressiveLoanInterestScheduleModel writeInterestScheduleModel(Loan loan, ProgressiveLoanInterestScheduleModel model) { + return null; } @Override diff --git a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapper.java b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapper.java index bce405ca0..e6e8c6790 100644 --- a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapper.java +++ b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapper.java @@ -31,7 +31,7 @@ public interface InterestScheduleModelRepositoryWrapper { Optional extractModel(Optional progressiveLoanModel); - String writeInterestScheduleModel(Loan loan, ProgressiveLoanInterestScheduleModel model); + ProgressiveLoanInterestScheduleModel writeInterestScheduleModel(Loan loan, ProgressiveLoanInterestScheduleModel model); Optional readProgressiveLoanInterestScheduleModel(Long loanId, LoanProductMinimumRepaymentScheduleRelatedDetail detail, Integer installmentAmountInMultipliesOf); diff --git a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapperImpl.java b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapperImpl.java index 086b46c80..a485544a4 100644 --- a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapperImpl.java +++ b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InterestScheduleModelRepositoryWrapperImpl.java @@ -50,7 +50,7 @@ public class InterestScheduleModelRepositoryWrapperImpl implements InterestSched @Transactional @Override - public String writeInterestScheduleModel(Loan loan, ProgressiveLoanInterestScheduleModel model) { + public ProgressiveLoanInterestScheduleModel writeInterestScheduleModel(Loan loan, ProgressiveLoanInterestScheduleModel model) { if (model == null) { return null; } @@ -66,7 +66,7 @@ public class InterestScheduleModelRepositoryWrapperImpl implements InterestSched progressiveLoanModel.setJsonModel(jsonModel); loanModelRepository.save(progressiveLoanModel); }); - return jsonModel; + return model; } @Override diff --git a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InternalProgressiveLoanApiResource.java b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InternalProgressiveLoanApiResource.java index 61e5a9d38..d2a59a262 100644 --- a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InternalProgressiveLoanApiResource.java +++ b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/InternalProgressiveLoanApiResource.java @@ -76,16 +76,14 @@ public class InternalProgressiveLoanApiResource implements InitializingBean { @Produces({ MediaType.APPLICATION_JSON }) @Path("{loanId}/model") @Operation(summary = "Fetch ProgressiveLoanInterestScheduleModel", description = "DO NOT USE THIS IN PRODUCTION!") - public String fetchModel(@PathParam("loanId") @Parameter(description = "loanId") long loanId) { + public ProgressiveLoanInterestScheduleModel fetchModel(@PathParam("loanId") @Parameter(description = "loanId") long loanId) { Loan loan = loanRepository.findOneWithNotFoundDetection(loanId); if (!loan.isProgressiveSchedule()) { throw new IllegalArgumentException("The loan is not progressive."); } - return writePlatformService - .readProgressiveLoanInterestScheduleModel(loanId, loan.getLoanRepaymentScheduleDetail(), - loan.getLoanProduct().getInstallmentAmountInMultiplesOf()) - .map(progressiveLoanInterestScheduleModelParserService::toJson).orElse(null); + return writePlatformService.readProgressiveLoanInterestScheduleModel(loanId, loan.getLoanRepaymentScheduleDetail(), + loan.getLoanProduct().getInstallmentAmountInMultiplesOf()).orElse(null); } private ProgressiveLoanInterestScheduleModel reprocessTransactionsAndGetModel(final Loan loan) { @@ -110,7 +108,7 @@ public class InternalProgressiveLoanApiResource implements InitializingBean { @Path("{loanId}/model") @Produces({ MediaType.APPLICATION_JSON }) @Operation(summary = "Update and Save ProgressiveLoanInterestScheduleModel", description = "DO NOT USE THIS IN PRODUCTION!") - public String updateModel(@PathParam("loanId") @Parameter(description = "loanId") long loanId) { + public ProgressiveLoanInterestScheduleModel updateModel(@PathParam("loanId") @Parameter(description = "loanId") long loanId) { Loan loan = loanRepository.findOneWithNotFoundDetection(loanId); if (!loan.isProgressiveSchedule()) { throw new IllegalArgumentException("The loan is not progressive.");