Loan externalId unique validation
This commit is contained in:
committed by
Arnold Gálovics
parent
2d07e8c867
commit
357062a186
+2
@@ -161,4 +161,6 @@ public interface LoanRepository extends JpaRepository<Loan, Long>, JpaSpecificat
|
||||
@Query(FIND_BY_ACCOUNT_NUMBER)
|
||||
Loan findLoanAccountByAccountNumber(@Param("accountNumber") String accountNumber);
|
||||
|
||||
boolean existsByExternalId(@Param("externalId") String externalId);
|
||||
|
||||
}
|
||||
|
||||
+4
@@ -240,6 +240,10 @@ public class LoanRepositoryWrapper {
|
||||
return this.repository.findNonClosedLoanByAccountNumber(accountNumber);
|
||||
}
|
||||
|
||||
public boolean existLoanByExternalId(final String externalId) {
|
||||
return this.repository.existsByExternalId(externalId);
|
||||
}
|
||||
|
||||
// Looks like we need complete entity
|
||||
@Transactional(readOnly = true)
|
||||
public Loan findNonClosedLoanThatBelongsToClient(@Param("loanId") Long loanId, @Param("clientId") Long clientId) {
|
||||
|
||||
+10
@@ -303,6 +303,16 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa
|
||||
|
||||
this.fromApiJsonDeserializer.validateForCreate(command.json(), isMeetingMandatoryForJLGLoans, loanProduct);
|
||||
|
||||
// Validate If the externalId is already registered
|
||||
final String externalId = this.fromJsonHelper.extractStringNamed("externalId", command.parsedJson());
|
||||
if (StringUtils.isNotBlank(externalId)) {
|
||||
final boolean existByExternalId = this.loanRepositoryWrapper.existLoanByExternalId(externalId);
|
||||
if (existByExternalId) {
|
||||
throw new GeneralPlatformDomainRuleException("error.msg.loan.with.externalId.already.used",
|
||||
"Loan with externalId is already registered.");
|
||||
}
|
||||
}
|
||||
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("loan");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user