FINERACT-2236: add clientId filter to loans request

This commit is contained in:
CsengeSóti
2025-04-17 17:41:47 +02:00
committed by Arnold Gálovics
parent 98894d1f21
commit 1b9cb5c6d5
6 changed files with 134 additions and 7 deletions
@@ -479,6 +479,7 @@ public class LoansApiResource {
@QueryParam("sortOrder") @Parameter(description = "sortOrder") final String sortOrder,
@QueryParam("accountNo") @Parameter(description = "accountNo") final String accountNo,
@QueryParam("associations") @Parameter(description = "associations") final String associations,
@QueryParam("clientId") @Parameter(description = "clientId") final Long clientId,
@QueryParam("status") @Parameter(description = "status") final String status) {
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
@@ -488,7 +489,7 @@ public class LoansApiResource {
sqlValidator.validate(accountNo);
sqlValidator.validate(externalId);
final SearchParameters searchParameters = SearchParameters.builder().accountNo(accountNo).sortOrder(sortOrder)
.externalId(externalId).offset(offset).limit(limit).orderBy(orderBy).status(status).build();
.externalId(externalId).offset(offset).limit(limit).orderBy(orderBy).status(status).clientId(clientId).build();
final Page<LoanAccountData> loanBasicDetails = this.loanReadPlatformService.retrieveAll(searchParameters);
final Set<String> associationParameters = ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
@@ -359,6 +359,12 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa
arrayPos = arrayPos + 1;
}
if (searchParameters.getClientId() != null) {
sqlBuilder.append(" and l.client_id = ?");
extraCriterias.add(searchParameters.getClientId());
arrayPos = arrayPos + 1;
}
if (searchParameters.hasOrderBy()) {
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
this.columnValidator.validateSqlInjection(sqlBuilder.toString(), searchParameters.getOrderBy());
@@ -11147,6 +11147,12 @@ GET https://DomainName/api/v1/loans/{loanId}
</dd>
<dd>Use account no. of loans to restrict results.</dd>
<dt>clientId</dt>
<dd>
String <span>optional</span>
</dd>
<dd>Use client ID of loans to restrict results.</dd>
<dt>associations</dt>
<dd>String <span>optional,</span>
<span>Comma separated list of recurring loan 'associations' (itemized below).</span>