[FINERACT-1926] POST API for asset externalization fixes

This commit is contained in:
taskain7
2023-05-25 14:12:53 +02:00
committed by Adam Saghy
parent 045f0ec121
commit 105b4ed154
6 changed files with 104 additions and 14 deletions
@@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.loanaccount.domain;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import org.apache.fineract.cob.data.LoanCOBParameter;
import org.apache.fineract.cob.data.LoanIdAndExternalIdAndAccountNo;
import org.apache.fineract.cob.data.LoanIdAndLastClosedBusinessDate;
@@ -197,7 +198,7 @@ public interface LoanRepository extends JpaRepository<Loan, Long>, JpaSpecificat
Loan findLoanAccountByAccountNumber(@Param("accountNumber") String accountNumber);
@Query(GET_NON_CLOSED_LOAN_BY_LOAN_ID)
Loan getNonClosedLoanIdAndExternalIdByLoanId(@Param("loanId") Long loanId);
Optional<Loan> getNonClosedLoanIdAndExternalIdByLoanId(@Param("loanId") Long loanId);
@Query(EXISTS_NON_CLOSED_BY_EXTERNAL_LOAN_ID)
boolean existsNonClosedLoanByExternalLoanId(@Param("externalLoanId") ExternalId externalLoanId);
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.config.FineractProperties;
import org.apache.fineract.infrastructure.core.domain.ExternalId;
@@ -263,7 +264,10 @@ public class LoanRepositoryWrapper {
return repository.findLoanIdByStatusId(statusId);
}
public Loan getNonClosedLoanIdAndExternalIdByLoanId(Long loanId) {
public Optional<Loan> getNonClosedLoanIdAndExternalIdByLoanId(Long loanId) {
if (repository.findById(loanId).isEmpty()) {
throw new LoanNotFoundException(loanId);
}
return repository.getNonClosedLoanIdAndExternalIdByLoanId(loanId);
}
}
@@ -594,8 +594,9 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa
@Override
public LoanIdAndExternalIdData getTransferableLoanIdAndExternalId(Long loanId) {
Loan loan = loanRepositoryWrapper.getNonClosedLoanIdAndExternalIdByLoanId(loanId);
return new LoanIdAndExternalIdData(loan.getId(), loan.getExternalId());
Optional<Loan> loan = loanRepositoryWrapper.getNonClosedLoanIdAndExternalIdByLoanId(loanId);
return loan.map(value -> new LoanIdAndExternalIdData(value.getId(), value.getExternalId()))
.orElseGet(() -> new LoanIdAndExternalIdData(null, null));
}
@Override