FINERACT-2025 SQL Query Improvement
This commit is contained in:
committed by
Peter Bagrij
parent
cb40f230b1
commit
5a8a2b9e35
+8
-9
@@ -271,8 +271,8 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo
|
||||
List<OfficeData> offices = null;
|
||||
if (officeId == null) {
|
||||
Boolean includeAllOffices = Boolean.TRUE;
|
||||
offices = (List) this.officeReadPlatformService.retrieveAllOffices(includeAllOffices, new SearchParameters(null, null, null,
|
||||
null, null, null, null, null, null, "id", "asc", null, null, null, null, null, null));
|
||||
offices = (List) this.officeReadPlatformService.retrieveAllOffices(includeAllOffices,
|
||||
new SearchParameters(null, null, null, null, null, null, null, null, "id", "asc", null, null, null, null, null, null));
|
||||
} else {
|
||||
offices = new ArrayList<>();
|
||||
offices.add(this.officeReadPlatformService.retrieveOffice(officeId));
|
||||
@@ -341,7 +341,7 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo
|
||||
if (officeId == null) {
|
||||
centers = (List<CenterData>) this.centerReadPlatformService.retrieveAll(null, null);
|
||||
} else {
|
||||
SearchParameters searchParameters = SearchParameters.from(null, officeId, null, null, null);
|
||||
SearchParameters searchParameters = SearchParameters.from(officeId, null, null, null);
|
||||
centers = (List<CenterData>) centerReadPlatformService.retrieveAll(searchParameters, null);
|
||||
}
|
||||
|
||||
@@ -359,7 +359,7 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo
|
||||
}
|
||||
}
|
||||
} else {
|
||||
SearchParameters searchParameters = SearchParameters.from(null, officeId, null, null, null);
|
||||
SearchParameters searchParameters = SearchParameters.from(officeId, null, null, null);
|
||||
Page<ClientData> clientDataPage = this.clientReadPlatformService.retrieveAll(searchParameters);
|
||||
if (clientDataPage != null) {
|
||||
clients = new ArrayList<>();
|
||||
@@ -420,7 +420,7 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo
|
||||
if (officeId == null) {
|
||||
groups = (List<GroupGeneralData>) this.groupReadPlatformService.retrieveAll(null, null);
|
||||
} else {
|
||||
SearchParameters searchParameters = SearchParameters.from(null, officeId, null, null, null);
|
||||
SearchParameters searchParameters = SearchParameters.from(officeId, null, null, null);
|
||||
groups = (List<GroupGeneralData>) groupReadPlatformService.retrieveAll(searchParameters, null);
|
||||
}
|
||||
|
||||
@@ -448,7 +448,7 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo
|
||||
if (officeId == null) {
|
||||
loanAccounts = loanReadPlatformService.retrieveAll(null).getPageItems();
|
||||
} else {
|
||||
SearchParameters searchParameters = SearchParameters.from(null, officeId, null, null, null);
|
||||
SearchParameters searchParameters = SearchParameters.from(officeId, null, null, null);
|
||||
loanAccounts = loanReadPlatformService.retrieveAll(searchParameters).getPageItems();
|
||||
}
|
||||
return loanAccounts;
|
||||
@@ -488,12 +488,11 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo
|
||||
|
||||
private List<SavingsAccountData> fetchSavingsAccounts(Long officeId) {
|
||||
List<SavingsAccountData> savingsAccounts = null;
|
||||
String activeAccounts = "sa.status_enum = 300";
|
||||
if (officeId != null) {
|
||||
SearchParameters searchParameters = SearchParameters.from(activeAccounts, officeId, null, null, null);
|
||||
SearchParameters searchParameters = SearchParameters.builder().officeId(officeId).status("300").build();
|
||||
savingsAccounts = savingsAccountReadPlatformService.retrieveAll(searchParameters).getPageItems();
|
||||
} else {
|
||||
SearchParameters searchParameters = SearchParameters.from(activeAccounts, null, null, null, null);
|
||||
SearchParameters searchParameters = SearchParameters.builder().status("300").build();
|
||||
savingsAccounts = savingsAccountReadPlatformService.retrieveAll(searchParameters).getPageItems();
|
||||
}
|
||||
return savingsAccounts;
|
||||
|
||||
+7
-9
@@ -74,12 +74,11 @@ public class EmailApiResource {
|
||||
|
||||
@GET
|
||||
@Path("pendingEmail")
|
||||
public String retrievePendingEmail(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("offset") final Integer offset,
|
||||
@QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy,
|
||||
@QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
|
||||
public String retrievePendingEmail(@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
||||
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
|
||||
|
||||
context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
final SearchParameters searchParameters = SearchParameters.forEmailCampaign(sqlSearch, offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forEmailCampaign(offset, limit, orderBy, sortOrder);
|
||||
Collection<EmailData> emailMessages = readPlatformService.retrieveAllPending(searchParameters);
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return toApiJsonSerializer.serialize(settings, emailMessages);
|
||||
@@ -87,13 +86,12 @@ public class EmailApiResource {
|
||||
|
||||
@GET
|
||||
@Path("sentEmail")
|
||||
public String retrieveSentEmail(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("offset") final Integer offset,
|
||||
@QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy,
|
||||
@QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
|
||||
public String retrieveSentEmail(@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
||||
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
|
||||
|
||||
context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forEmailCampaign(sqlSearch, offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forEmailCampaign(offset, limit, orderBy, sortOrder);
|
||||
Collection<EmailData> emailMessages = readPlatformService.retrieveAllSent(searchParameters);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
@@ -133,7 +131,7 @@ public class EmailApiResource {
|
||||
|
||||
context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forEmailCampaign(sqlSearch, offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forEmailCampaign(offset, limit, orderBy, sortOrder);
|
||||
Collection<EmailData> emailMessages = readPlatformService.retrieveAllFailed(searchParameters);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
|
||||
+3
-4
@@ -139,11 +139,10 @@ public class SmsCampaignApiResource {
|
||||
|
||||
smscampaigns""")
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = SmsCampaignData.class)))
|
||||
public String retrieveAllEmails(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("offset") final Integer offset,
|
||||
@QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy,
|
||||
@QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
|
||||
public String retrieveAllEmails(@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
||||
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder, @Context final UriInfo uriInfo) {
|
||||
platformSecurityContext.authenticatedUser().validateHasReadPermission(SmsCampaignConstants.RESOURCE_NAME);
|
||||
final SearchParameters searchParameters = SearchParameters.forSMSCampaign(sqlSearch, offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forSMSCampaign(offset, limit, orderBy, sortOrder);
|
||||
Page<SmsCampaignData> smsCampaignDataCollection = smsCampaignReadPlatformService.retrieveAll(searchParameters);
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return toApiJsonSerializer.serialize(settings, smsCampaignDataCollection);
|
||||
|
||||
+4
-4
@@ -95,11 +95,11 @@ public class SmsApiResource {
|
||||
public String retrieveAllSmsByStatus(@PathParam("campaignId") final Long campaignId, @Context final UriInfo uriInfo,
|
||||
@QueryParam("status") final Long status, @QueryParam("fromDate") final DateParam fromDateParam,
|
||||
@QueryParam("toDate") final DateParam toDateParam, @QueryParam("locale") final String locale,
|
||||
@QueryParam("dateFormat") final String rawDateFormat, @QueryParam("sqlSearch") final String sqlSearch,
|
||||
@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
||||
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) {
|
||||
@QueryParam("dateFormat") final String rawDateFormat, @QueryParam("offset") final Integer offset,
|
||||
@QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy,
|
||||
@QueryParam("sortOrder") final String sortOrder) {
|
||||
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
|
||||
final SearchParameters searchParameters = SearchParameters.forSMSCampaign(sqlSearch, offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forSMSCampaign(offset, limit, orderBy, sortOrder);
|
||||
|
||||
final DateFormat dateFormat = StringUtils.isBlank(rawDateFormat) ? null : new DateFormat(rawDateFormat);
|
||||
|
||||
|
||||
+1
-3
@@ -116,7 +116,6 @@ public class AccountTransfersApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = AccountTransfersApiResourceSwagger.GetAccountTransfersResponse.class))) })
|
||||
public String retrieveAll(@Context final UriInfo uriInfo,
|
||||
@QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
@QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||
@QueryParam("limit") @Parameter(example = "limit") final Integer limit,
|
||||
@@ -126,8 +125,7 @@ public class AccountTransfersApiResource {
|
||||
|
||||
this.context.authenticatedUser().validateHasReadPermission(AccountTransfersApiConstants.ACCOUNT_TRANSFER_RESOURCE_NAME);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(sqlSearch, externalId, offset, limit, orderBy,
|
||||
sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(externalId, offset, limit, orderBy, sortOrder);
|
||||
|
||||
final Page<AccountTransferData> transfers = this.accountTransfersReadPlatformService.retrieveAll(searchParameters, accountDetailId);
|
||||
|
||||
|
||||
+3
-7
@@ -169,7 +169,6 @@ public class StandingInstructionApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = StandingInstructionApiResourceSwagger.GetStandingInstructionsResponse.class))) })
|
||||
public String retrieveAll(@Context final UriInfo uriInfo,
|
||||
@QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
@QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||
@QueryParam("limit") @Parameter(description = "limit") final Integer limit,
|
||||
@@ -183,8 +182,7 @@ public class StandingInstructionApiResource {
|
||||
|
||||
this.context.authenticatedUser().validateHasReadPermission(StandingInstructionApiConstants.STANDING_INSTRUCTION_RESOURCE_NAME);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(sqlSearch, externalId, offset, limit, orderBy,
|
||||
sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(externalId, offset, limit, orderBy, sortOrder);
|
||||
|
||||
final LocalDate startDateRange = null;
|
||||
final LocalDate endDateRange = null;
|
||||
@@ -206,8 +204,7 @@ public class StandingInstructionApiResource {
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = StandingInstructionApiResourceSwagger.GetStandingInstructionsStandingInstructionIdResponse.class))) })
|
||||
public String retrieveOne(
|
||||
@PathParam("standingInstructionId") @Parameter(description = "standingInstructionId") final Long standingInstructionId,
|
||||
@Context final UriInfo uriInfo, @QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
@Context final UriInfo uriInfo, @QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
@QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||
@QueryParam("limit") @Parameter(description = "limit") final Integer limit,
|
||||
@QueryParam("orderBy") @Parameter(description = "orderBy") final String orderBy,
|
||||
@@ -216,8 +213,7 @@ public class StandingInstructionApiResource {
|
||||
this.context.authenticatedUser().validateHasReadPermission(StandingInstructionApiConstants.STANDING_INSTRUCTION_RESOURCE_NAME);
|
||||
|
||||
StandingInstructionData standingInstructionData = this.standingInstructionReadPlatformService.retrieveOne(standingInstructionId);
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(sqlSearch, externalId, offset, limit, orderBy,
|
||||
sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(externalId, offset, limit, orderBy, sortOrder);
|
||||
final Set<String> associationParameters = ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
Page<AccountTransferData> transfers = null;
|
||||
if (!associationParameters.isEmpty()) {
|
||||
|
||||
+1
-3
@@ -69,7 +69,6 @@ public class StandingInstructionHistoryApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = StandingInstructionHistoryApiResourceSwagger.GetStandingInstructionRunHistoryResponse.class))) })
|
||||
public String retrieveAll(@Context final UriInfo uriInfo,
|
||||
@QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
@QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||
@QueryParam("limit") @Parameter(description = "limit") final Integer limit,
|
||||
@@ -89,8 +88,7 @@ public class StandingInstructionHistoryApiResource {
|
||||
|
||||
final DateFormat dateFormat = StringUtils.isBlank(rawDateFormat) ? null : new DateFormat(rawDateFormat);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(sqlSearch, externalId, offset, limit, orderBy,
|
||||
sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forAccountTransfer(externalId, offset, limit, orderBy, sortOrder);
|
||||
LocalDate startDateRange = null;
|
||||
LocalDate endDateRange = null;
|
||||
if (fromDateParam != null) {
|
||||
|
||||
+7
-9
@@ -136,7 +136,6 @@ public class ClientsApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ClientsApiResourceSwagger.GetClientsResponse.class))) })
|
||||
public String retrieveAll(@Context final UriInfo uriInfo,
|
||||
@QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("officeId") @Parameter(description = "officeId") final Long officeId,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
@QueryParam("displayName") @Parameter(description = "displayName") final String displayName,
|
||||
@@ -150,8 +149,8 @@ public class ClientsApiResource {
|
||||
@QueryParam("sortOrder") @Parameter(description = "sortOrder") final String sortOrder,
|
||||
@QueryParam("orphansOnly") @Parameter(description = "orphansOnly") final Boolean orphansOnly) {
|
||||
|
||||
return retrieveAll(uriInfo, sqlSearch, officeId, externalId, displayName, firstname, lastname, status, hierarchy, offset, limit,
|
||||
orderBy, sortOrder, orphansOnly, false);
|
||||
return retrieveAll(uriInfo, officeId, externalId, displayName, firstname, lastname, status, hierarchy, offset, limit, orderBy,
|
||||
sortOrder, orphansOnly, false);
|
||||
}
|
||||
|
||||
@GET
|
||||
@@ -440,13 +439,12 @@ public class ClientsApiResource {
|
||||
return retrieveClientTransferTemplate(null, externalId);
|
||||
}
|
||||
|
||||
public String retrieveAll(final UriInfo uriInfo, final String sqlSearch, final Long officeId, final String externalId,
|
||||
final String displayName, final String firstname, final String lastname, final String status, final String hierarchy,
|
||||
final Integer offset, final Integer limit, final String orderBy, final String sortOrder, final Boolean orphansOnly,
|
||||
final boolean isSelfUser) {
|
||||
public String retrieveAll(final UriInfo uriInfo, final Long officeId, final String externalId, final String displayName,
|
||||
final String firstname, final String lastname, final String status, final String hierarchy, final Integer offset,
|
||||
final Integer limit, final String orderBy, final String sortOrder, final Boolean orphansOnly, final boolean isSelfUser) {
|
||||
context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_RESOURCE_NAME);
|
||||
final SearchParameters searchParameters = SearchParameters.forClients(sqlSearch, officeId, externalId, displayName, firstname,
|
||||
lastname, status, hierarchy, offset, limit, orderBy, sortOrder, orphansOnly, isSelfUser);
|
||||
final SearchParameters searchParameters = SearchParameters.forClients(officeId, externalId, displayName, firstname, lastname,
|
||||
status, hierarchy, offset, limit, orderBy, sortOrder, orphansOnly, isSelfUser);
|
||||
final Page<ClientData> clientData = clientReadPlatformService.retrieveAll(searchParameters);
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return toApiJsonSerializer.serialize(settings, clientData, ClientApiConstants.CLIENT_RESPONSE_DATA_PARAMETERS);
|
||||
|
||||
-8
@@ -227,7 +227,6 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService
|
||||
|
||||
private String buildSqlStringFromClientCriteria(String schemaSql, final SearchParameters searchParameters, List<Object> paramList) {
|
||||
|
||||
String sqlSearch = searchParameters.getSqlSearch();
|
||||
final Long officeId = searchParameters.getOfficeId();
|
||||
final String externalId = searchParameters.getExternalId();
|
||||
final String displayName = searchParameters.getName();
|
||||
@@ -236,13 +235,6 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService
|
||||
final String status = searchParameters.getStatus();
|
||||
|
||||
String extraCriteria = "";
|
||||
if (sqlSearch != null) {
|
||||
sqlSearch = sqlSearch.replaceAll(" display_name ", " c.display_name ");
|
||||
sqlSearch = sqlSearch.replaceAll("display_name ", "c.display_name ");
|
||||
extraCriteria = " and (" + sqlSearch + ")";
|
||||
this.columnValidator.validateSqlInjection(schemaSql, sqlSearch);
|
||||
}
|
||||
|
||||
if (officeId != null) {
|
||||
extraCriteria += " and c.office_id = ? ";
|
||||
paramList.add(officeId);
|
||||
|
||||
+4
-4
@@ -465,19 +465,19 @@ public class LoansApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = LoansApiResourceSwagger.GetLoansResponse.class))) })
|
||||
public String retrieveAll(@Context final UriInfo uriInfo,
|
||||
@QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
// @QueryParam("underHierarchy") final String hierarchy,
|
||||
@QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||
@QueryParam("limit") @Parameter(description = "limit") final Integer limit,
|
||||
@QueryParam("orderBy") @Parameter(description = "orderBy") final String orderBy,
|
||||
@QueryParam("sortOrder") @Parameter(description = "sortOrder") final String sortOrder,
|
||||
@QueryParam("accountNo") @Parameter(description = "accountNo") final String accountNo) {
|
||||
@QueryParam("accountNo") @Parameter(description = "accountNo") final String accountNo,
|
||||
@QueryParam("status") @Parameter(description = "status") final String status) {
|
||||
|
||||
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forLoans(sqlSearch, externalId, offset, limit, orderBy, sortOrder,
|
||||
accountNo);
|
||||
final SearchParameters searchParameters = SearchParameters.builder().accountNo(accountNo).sortOrder(sortOrder)
|
||||
.externalId(externalId).offset(offset).limit(limit).orderBy(orderBy).status(status).build();
|
||||
|
||||
final Page<LoanAccountData> loanBasicDetails = this.loanReadPlatformService.retrieveAll(searchParameters);
|
||||
|
||||
|
||||
+5
-8
@@ -55,7 +55,6 @@ import org.apache.fineract.infrastructure.core.service.SearchParameters;
|
||||
import org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.infrastructure.security.utils.ColumnValidator;
|
||||
import org.apache.fineract.infrastructure.security.utils.SQLInjectionValidator;
|
||||
import org.apache.fineract.organisation.monetary.data.CurrencyData;
|
||||
import org.apache.fineract.organisation.monetary.domain.ApplicationCurrency;
|
||||
import org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepositoryWrapper;
|
||||
@@ -313,7 +312,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa
|
||||
|
||||
// TODO - for time being this will data scope list of loans returned to
|
||||
// only loans that have a client associated.
|
||||
// to support senario where loan has group_id only OR client_id will
|
||||
// to support scenario where loan has group_id only OR client_id will
|
||||
// probably require a UNION query
|
||||
// but that at present is an edge case
|
||||
sqlBuilder.append(" join m_office o on (o.id = c.office_id or o.id = g.office_id) ");
|
||||
@@ -327,12 +326,10 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa
|
||||
|
||||
if (searchParameters != null) {
|
||||
|
||||
String sqlQueryCriteria = searchParameters.getSqlSearch();
|
||||
if (StringUtils.isNotBlank(sqlQueryCriteria)) {
|
||||
SQLInjectionValidator.validateSQLInput(sqlQueryCriteria);
|
||||
sqlQueryCriteria = sqlQueryCriteria.replace("accountNo", "l.account_no");
|
||||
this.columnValidator.validateSqlInjection(sqlBuilder.toString(), sqlQueryCriteria);
|
||||
sqlBuilder.append(" and (").append(sqlQueryCriteria).append(")");
|
||||
if (StringUtils.isNotBlank(searchParameters.getStatus())) {
|
||||
sqlBuilder.append(" and l.loan_status_id = ?");
|
||||
extraCriterias.add(Integer.parseInt(searchParameters.getStatus()));
|
||||
arrayPos = arrayPos + 1;
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(searchParameters.getExternalId())) {
|
||||
|
||||
+1
-2
@@ -125,7 +125,6 @@ public class SavingsAccountsApiResource {
|
||||
@ApiResponses({
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = SavingsAccountsApiResourceSwagger.GetSavingsAccountsResponse.class))) })
|
||||
public String retrieveAll(@Context final UriInfo uriInfo,
|
||||
@QueryParam("sqlSearch") @Parameter(description = "sqlSearch") final String sqlSearch,
|
||||
@QueryParam("externalId") @Parameter(description = "externalId") final String externalId,
|
||||
// @QueryParam("underHierarchy") final String hierarchy,
|
||||
@QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||
@@ -135,7 +134,7 @@ public class SavingsAccountsApiResource {
|
||||
|
||||
context.authenticatedUser().validateHasReadPermission(SavingsApiConstants.SAVINGS_ACCOUNT_RESOURCE_NAME);
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forSavings(sqlSearch, externalId, offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.forSavings(externalId, offset, limit, orderBy, sortOrder);
|
||||
|
||||
final Page<SavingsAccountData> products = savingsAccountReadPlatformService.retrieveAll(searchParameters);
|
||||
|
||||
|
||||
+5
-5
@@ -200,11 +200,11 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead
|
||||
objectArray[0] = hierarchySearchString;
|
||||
int arrayPos = 1;
|
||||
if (searchParameters != null) {
|
||||
String sqlQueryCriteria = searchParameters.getSqlSearch();
|
||||
if (StringUtils.isNotBlank(sqlQueryCriteria)) {
|
||||
sqlQueryCriteria = sqlQueryCriteria.replaceAll("accountNo", "sa.account_no");
|
||||
this.columnValidator.validateSqlInjection(sqlBuilder.toString(), sqlQueryCriteria);
|
||||
sqlBuilder.append(" and (").append(sqlQueryCriteria).append(")");
|
||||
|
||||
if (StringUtils.isNotBlank(searchParameters.getStatus())) {
|
||||
sqlBuilder.append(" and sa.status_enum = ?");
|
||||
objectArray[arrayPos] = Integer.parseInt(searchParameters.getStatus());
|
||||
arrayPos = arrayPos + 1;
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(searchParameters.getExternalId())) {
|
||||
|
||||
+2
-3
@@ -90,13 +90,12 @@ public class SelfClientsApiResource {
|
||||
@QueryParam("orderBy") @Parameter(description = "orderBy") final String orderBy,
|
||||
@QueryParam("sortOrder") @Parameter(description = "sortOrder") final String sortOrder) {
|
||||
|
||||
final String sqlSearch = null;
|
||||
final Long officeId = null;
|
||||
final String externalId = null;
|
||||
final String hierarchy = null;
|
||||
final Boolean orphansOnly = null;
|
||||
return this.clientApiResource.retrieveAll(uriInfo, sqlSearch, officeId, externalId, displayName, firstname, lastname, status,
|
||||
hierarchy, offset, limit, orderBy, sortOrder, orphansOnly, true);
|
||||
return this.clientApiResource.retrieveAll(uriInfo, officeId, externalId, displayName, firstname, lastname, status, hierarchy,
|
||||
offset, limit, orderBy, sortOrder, orphansOnly, true);
|
||||
}
|
||||
|
||||
@GET
|
||||
|
||||
Reference in New Issue
Block a user