Merge remote-tracking branch 'soc_anuruddha/mifosx-322,323'
This commit is contained in:
+10
-9
@@ -6,7 +6,6 @@
|
|||||||
package org.mifosplatform.portfolio.group.api;
|
package org.mifosplatform.portfolio.group.api;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -33,6 +32,7 @@ import org.mifosplatform.infrastructure.core.data.CommandProcessingResult;
|
|||||||
import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException;
|
import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||||
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.mifosplatform.portfolio.group.data.CenterData;
|
import org.mifosplatform.portfolio.group.data.CenterData;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupAccountSummaryCollectionData;
|
import org.mifosplatform.portfolio.group.data.GroupAccountSummaryCollectionData;
|
||||||
@@ -91,17 +91,18 @@ public class CentersApiResource {
|
|||||||
@GET
|
@GET
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("sqlSearch") final String sqlSearch,
|
public String retrieveAll(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("officeId") final Long officeId,
|
||||||
@QueryParam("officeId") final Long officeId, @QueryParam("externalId") final String externalId,
|
@QueryParam("externalId") final String externalId, @QueryParam("name") final String name,
|
||||||
@QueryParam("name") final String name, @QueryParam("underHierarchy") final String hierarchy) {
|
@QueryParam("underHierarchy") final String hierarchy, @QueryParam("offset") final Integer offset,
|
||||||
|
@QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy,
|
||||||
|
@QueryParam("sortOrder") final String sortOrder) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.CENTER_RESOURCE_NAME);
|
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.CENTER_RESOURCE_NAME);
|
||||||
|
|
||||||
final SearchParameters searchCriteria = SearchParameters.from(sqlSearch, officeId, externalId, name, hierarchy);
|
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, externalId, name, hierarchy, offset,
|
||||||
final Collection<CenterData> centers = this.centerReadPlatformService.retrieveAll(searchCriteria);
|
limit, orderBy, sortOrder);
|
||||||
|
final Page<CenterData> groups = this.centerReadPlatformService.retrieveAll(searchParameters);
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
return this.centerApiJsonSerializer.serialize(groups);
|
||||||
return this.centerApiJsonSerializer.serialize(settings, centers, GroupingTypesApiConstants.CENTER_RESPONSE_DATA_PARAMETERS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
|||||||
+9
-7
@@ -33,6 +33,7 @@ import org.mifosplatform.infrastructure.core.data.CommandProcessingResult;
|
|||||||
import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException;
|
import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||||
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.mifosplatform.portfolio.client.data.ClientData;
|
import org.mifosplatform.portfolio.client.data.ClientData;
|
||||||
import org.mifosplatform.portfolio.client.service.ClientReadPlatformService;
|
import org.mifosplatform.portfolio.client.service.ClientReadPlatformService;
|
||||||
@@ -106,17 +107,18 @@ public class GroupsApiResource {
|
|||||||
@GET
|
@GET
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("sqlSearch") final String sqlSearch,
|
public String retrieveAll(@QueryParam("sqlSearch") final String sqlSearch,
|
||||||
@QueryParam("officeId") final Long officeId, @QueryParam("externalId") final String externalId,
|
@QueryParam("officeId") final Long officeId, @QueryParam("externalId") final String externalId,
|
||||||
@QueryParam("name") final String name, @QueryParam("underHierarchy") final String hierarchy) {
|
@QueryParam("name") final String name, @QueryParam("underHierarchy") final String hierarchy,
|
||||||
|
@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
||||||
|
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.GROUP_RESOURCE_NAME);
|
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.GROUP_RESOURCE_NAME);
|
||||||
|
|
||||||
final SearchParameters searchCriteria = SearchParameters.from(sqlSearch, officeId, externalId, name, hierarchy);
|
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, externalId, name, hierarchy, offset,
|
||||||
final Collection<GroupGeneralData> groups = this.groupReadPlatformService.retrieveAll(searchCriteria);
|
limit, orderBy, sortOrder);
|
||||||
|
final Page<GroupGeneralData> groups = this.groupReadPlatformService.retrieveAll(searchParameters);
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
return this.groupGeneralApiJsonSerializer.serialize(groups);
|
||||||
return this.groupGeneralApiJsonSerializer.serialize(settings, groups, GroupingTypesApiConstants.GROUP_RESPONSE_DATA_PARAMETERS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
|||||||
+2
-1
@@ -7,6 +7,7 @@ package org.mifosplatform.portfolio.group.service;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.portfolio.group.data.CenterData;
|
import org.mifosplatform.portfolio.group.data.CenterData;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ public interface CenterReadPlatformService {
|
|||||||
|
|
||||||
Collection<CenterData> retrieveAllForDropdown(Long officeId);
|
Collection<CenterData> retrieveAllForDropdown(Long officeId);
|
||||||
|
|
||||||
Collection<CenterData> retrieveAll(SearchParameters searchCriteria);
|
Page<CenterData> retrieveAll(SearchParameters searchParameters);
|
||||||
|
|
||||||
GroupGeneralData retrieveCenterGroupTemplate(Long centerId);
|
GroupGeneralData retrieveCenterGroupTemplate(Long centerId);
|
||||||
|
|
||||||
|
|||||||
+27
-10
@@ -15,6 +15,8 @@ import org.joda.time.LocalDate;
|
|||||||
import org.mifosplatform.infrastructure.core.api.ApiParameterHelper;
|
import org.mifosplatform.infrastructure.core.api.ApiParameterHelper;
|
||||||
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
||||||
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
||||||
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
|
import org.mifosplatform.infrastructure.core.service.PaginationHelper;
|
||||||
import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource;
|
import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.mifosplatform.organisation.office.data.OfficeData;
|
import org.mifosplatform.organisation.office.data.OfficeData;
|
||||||
@@ -52,6 +54,8 @@ public class CenterReadPlatformServiceImpl implements CenterReadPlatformService
|
|||||||
// data mappers
|
// data mappers
|
||||||
private final CenterDataMapper centerMapper = new CenterDataMapper();
|
private final CenterDataMapper centerMapper = new CenterDataMapper();
|
||||||
private final GroupDataMapper groupDataMapper = new GroupDataMapper();
|
private final GroupDataMapper groupDataMapper = new GroupDataMapper();
|
||||||
|
|
||||||
|
private final PaginationHelper<CenterData> paginationHelper = new PaginationHelper<CenterData>();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public CenterReadPlatformServiceImpl(final PlatformSecurityContext context, final TenantAwareRoutingDataSource dataSource,
|
public CenterReadPlatformServiceImpl(final PlatformSecurityContext context, final TenantAwareRoutingDataSource dataSource,
|
||||||
@@ -69,13 +73,13 @@ public class CenterReadPlatformServiceImpl implements CenterReadPlatformService
|
|||||||
// caused by the same name of columns in m_office and m_group tables
|
// caused by the same name of columns in m_office and m_group tables
|
||||||
private String getCenterExtraCriteria(final SearchParameters searchCriteria) {
|
private String getCenterExtraCriteria(final SearchParameters searchCriteria) {
|
||||||
|
|
||||||
String extraCriteria = " and g.level_id = " + GroupTypes.CENTER.getId() + " ";
|
String extraCriteria = " and g.level_id = " + GroupTypes.CENTER.getId();
|
||||||
|
|
||||||
String sqlQueryCriteria = searchCriteria.getSqlSearch();
|
String sqlQueryCriteria = searchCriteria.getSqlSearch();
|
||||||
if (StringUtils.isNotBlank(sqlQueryCriteria)) {
|
if (StringUtils.isNotBlank(sqlQueryCriteria)) {
|
||||||
sqlQueryCriteria = sqlQueryCriteria.replaceAll(" display_name ", " g.display_name ");
|
sqlQueryCriteria = sqlQueryCriteria.replaceAll(" display_name ", " g.display_name ");
|
||||||
sqlQueryCriteria = sqlQueryCriteria.replaceAll("display_name ", "g.display_name ");
|
sqlQueryCriteria = sqlQueryCriteria.replaceAll("display_name ", "g.display_name ");
|
||||||
extraCriteria = " and (" + sqlQueryCriteria + ")";
|
extraCriteria += " and (" + sqlQueryCriteria + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
final Long officeId = searchCriteria.getOfficeId();
|
final Long officeId = searchCriteria.getOfficeId();
|
||||||
@@ -181,25 +185,38 @@ public class CenterReadPlatformServiceImpl implements CenterReadPlatformService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<CenterData> retrieveAll(final SearchParameters searchCriteria) {
|
public Page<CenterData> retrieveAll(final SearchParameters searchParameters) {
|
||||||
|
|
||||||
this.context.authenticatedUser();
|
|
||||||
|
|
||||||
final AppUser currentUser = context.authenticatedUser();
|
final AppUser currentUser = context.authenticatedUser();
|
||||||
final String hierarchy = currentUser.getOffice().getHierarchy();
|
final String hierarchy = currentUser.getOffice().getHierarchy();
|
||||||
final String hierarchySearchString = hierarchy + "%";
|
final String hierarchySearchString = hierarchy + "%";
|
||||||
|
|
||||||
String sql = "select " + centerMapper.schema() + " where o.hierarchy like ?";
|
StringBuilder sqlBuilder = new StringBuilder(200);
|
||||||
|
sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
|
||||||
|
sqlBuilder.append(this.centerMapper.schema());
|
||||||
|
sqlBuilder.append(" where o.hierarchy like ?");
|
||||||
|
|
||||||
final String extraCriteria = getCenterExtraCriteria(searchCriteria);
|
final String extraCriteria = getCenterExtraCriteria(searchParameters);
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(extraCriteria)) {
|
if (StringUtils.isNotBlank(extraCriteria)) {
|
||||||
sql += " and (" + extraCriteria + ")";
|
sqlBuilder.append(" and (").append(extraCriteria).append(")");
|
||||||
}
|
}
|
||||||
|
|
||||||
sql += " order by g.hierarchy";
|
if (searchParameters.isOrderByRequested()) {
|
||||||
|
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy()).append(' ').append(searchParameters.getSortOrder());
|
||||||
|
}
|
||||||
|
|
||||||
return this.jdbcTemplate.query(sql, centerMapper, new Object[] { hierarchySearchString });
|
if (searchParameters.isLimited()) {
|
||||||
|
sqlBuilder.append(" limit ").append(searchParameters.getLimit());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (searchParameters.isOffset()) {
|
||||||
|
sqlBuilder.append(" offset ").append(searchParameters.getOffset());
|
||||||
|
}
|
||||||
|
|
||||||
|
final String sqlCountRows = "SELECT FOUND_ROWS()";
|
||||||
|
return this.paginationHelper.fetchPage(this.jdbcTemplate, sqlCountRows, sqlBuilder.toString(),
|
||||||
|
new Object[] { hierarchySearchString }, this.centerMapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-1
@@ -7,6 +7,7 @@ package org.mifosplatform.portfolio.group.service;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupAccountSummaryCollectionData;
|
import org.mifosplatform.portfolio.group.data.GroupAccountSummaryCollectionData;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupAccountSummaryData;
|
import org.mifosplatform.portfolio.group.data.GroupAccountSummaryData;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
||||||
@@ -15,7 +16,7 @@ public interface GroupReadPlatformService {
|
|||||||
|
|
||||||
GroupGeneralData retrieveTemplate(Long officeId, boolean isCenterGroup);
|
GroupGeneralData retrieveTemplate(Long officeId, boolean isCenterGroup);
|
||||||
|
|
||||||
Collection<GroupGeneralData> retrieveAll(SearchParameters searchCriteria);
|
Page<GroupGeneralData> retrieveAll(SearchParameters searchParameters);
|
||||||
|
|
||||||
GroupGeneralData retrieveOne(Long groupId);
|
GroupGeneralData retrieveOne(Long groupId);
|
||||||
|
|
||||||
|
|||||||
+26
-7
@@ -14,6 +14,8 @@ import java.util.List;
|
|||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.mifosplatform.infrastructure.core.api.ApiParameterHelper;
|
import org.mifosplatform.infrastructure.core.api.ApiParameterHelper;
|
||||||
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
||||||
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
|
import org.mifosplatform.infrastructure.core.service.PaginationHelper;
|
||||||
import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource;
|
import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.mifosplatform.organisation.office.data.OfficeData;
|
import org.mifosplatform.organisation.office.data.OfficeData;
|
||||||
@@ -48,6 +50,7 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
private final CenterReadPlatformService centerReadPlatformService;
|
private final CenterReadPlatformService centerReadPlatformService;
|
||||||
|
|
||||||
private final AllGroupTypesDataMapper allGroupTypesDataMapper = new AllGroupTypesDataMapper();
|
private final AllGroupTypesDataMapper allGroupTypesDataMapper = new AllGroupTypesDataMapper();
|
||||||
|
private final PaginationHelper<GroupGeneralData> paginationHelper = new PaginationHelper<GroupGeneralData>();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public GroupReadPlatformServiceImpl(final PlatformSecurityContext context, final TenantAwareRoutingDataSource dataSource,
|
public GroupReadPlatformServiceImpl(final PlatformSecurityContext context, final TenantAwareRoutingDataSource dataSource,
|
||||||
@@ -100,22 +103,38 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<GroupGeneralData> retrieveAll(final SearchParameters searchCriteria) {
|
public Page<GroupGeneralData> retrieveAll(final SearchParameters searchParameters) {
|
||||||
|
|
||||||
final AppUser currentUser = context.authenticatedUser();
|
final AppUser currentUser = context.authenticatedUser();
|
||||||
final String hierarchy = currentUser.getOffice().getHierarchy();
|
final String hierarchy = currentUser.getOffice().getHierarchy();
|
||||||
final String hierarchySearchString = hierarchy + "%";
|
final String hierarchySearchString = hierarchy + "%";
|
||||||
|
|
||||||
String sql = "select " + this.allGroupTypesDataMapper.schema() + " where o.hierarchy like ?";
|
StringBuilder sqlBuilder = new StringBuilder(200);
|
||||||
|
sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
|
||||||
|
sqlBuilder.append(this.allGroupTypesDataMapper.schema());
|
||||||
|
sqlBuilder.append(" where o.hierarchy like ?");
|
||||||
|
|
||||||
|
final String extraCriteria = getGroupExtraCriteria(searchParameters);
|
||||||
|
|
||||||
final String extraCriteria = getGroupExtraCriteria(searchCriteria);
|
|
||||||
if (StringUtils.isNotBlank(extraCriteria)) {
|
if (StringUtils.isNotBlank(extraCriteria)) {
|
||||||
sql += " and (" + extraCriteria + ")";
|
sqlBuilder.append(" and (").append(extraCriteria).append(")");
|
||||||
}
|
}
|
||||||
|
|
||||||
sql += " order by g.hierarchy";
|
if (searchParameters.isOrderByRequested()) {
|
||||||
|
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy()).append(' ').append(searchParameters.getSortOrder());
|
||||||
|
}
|
||||||
|
|
||||||
return this.jdbcTemplate.query(sql, this.allGroupTypesDataMapper, new Object[] { hierarchySearchString });
|
if (searchParameters.isLimited()) {
|
||||||
|
sqlBuilder.append(" limit ").append(searchParameters.getLimit());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (searchParameters.isOffset()) {
|
||||||
|
sqlBuilder.append(" offset ").append(searchParameters.getOffset());
|
||||||
|
}
|
||||||
|
|
||||||
|
final String sqlCountRows = "SELECT FOUND_ROWS()";
|
||||||
|
return this.paginationHelper.fetchPage(this.jdbcTemplate, sqlCountRows, sqlBuilder.toString(),
|
||||||
|
new Object[] { hierarchySearchString }, this.allGroupTypesDataMapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 'g.' preffix because of ERROR 1052 (23000): Column 'column_name' in where
|
// 'g.' preffix because of ERROR 1052 (23000): Column 'column_name' in where
|
||||||
@@ -129,7 +148,7 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
|||||||
if (sqlSearch != null) {
|
if (sqlSearch != null) {
|
||||||
sqlSearch = sqlSearch.replaceAll(" display_name ", " g.display_name ");
|
sqlSearch = sqlSearch.replaceAll(" display_name ", " g.display_name ");
|
||||||
sqlSearch = sqlSearch.replaceAll("display_name ", "g.display_name ");
|
sqlSearch = sqlSearch.replaceAll("display_name ", "g.display_name ");
|
||||||
extraCriteria = " and (" + sqlSearch + ")";
|
extraCriteria += " and (" + sqlSearch + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
final Long officeId = searchCriteria.getOfficeId();
|
final Long officeId = searchCriteria.getOfficeId();
|
||||||
|
|||||||
+20
-5
@@ -30,14 +30,21 @@ public final class SearchParameters {
|
|||||||
final String displayName, final String firstname, final String lastname, final String hierarchy, final Integer offset,
|
final String displayName, final String firstname, final String lastname, final String hierarchy, final Integer offset,
|
||||||
final Integer limit, final String orderBy, final String sortOrder) {
|
final Integer limit, final String orderBy, final String sortOrder) {
|
||||||
|
|
||||||
Integer maxLimitAllowed = 200;
|
Integer maxLimitAllowed = getCheckedLimit(200, limit);
|
||||||
if (limit != null && limit < maxLimitAllowed && limit > 0) {
|
|
||||||
maxLimitAllowed = limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
|
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
|
||||||
orderBy, sortOrder);
|
orderBy, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static SearchParameters forGroups(final String sqlSearch, final Long officeId, final String externalId,
|
||||||
|
final String name, final String hierarchy, final Integer offset,
|
||||||
|
final Integer limit, final String orderBy, final String sortOrder) {
|
||||||
|
|
||||||
|
Integer maxLimitAllowed = getCheckedLimit(200, limit);
|
||||||
|
|
||||||
|
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed,
|
||||||
|
orderBy, sortOrder);
|
||||||
|
}
|
||||||
|
|
||||||
private SearchParameters(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
private SearchParameters(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||||
final String hierarchy, final String firstname, final String lastname, final Integer offset, final Integer limit,
|
final String hierarchy, final String firstname, final String lastname, final Integer offset, final Integer limit,
|
||||||
@@ -62,6 +69,14 @@ public final class SearchParameters {
|
|||||||
public boolean isSortOrderProvided() {
|
public boolean isSortOrderProvided() {
|
||||||
return StringUtils.isNotBlank(this.sortOrder);
|
return StringUtils.isNotBlank(this.sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Integer getCheckedLimit(Integer maxLimitAllowed, Integer limit)
|
||||||
|
{
|
||||||
|
if (limit != null && limit < maxLimitAllowed && limit > 0) {
|
||||||
|
maxLimitAllowed = limit;
|
||||||
|
}
|
||||||
|
return maxLimitAllowed;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSqlSearch() {
|
public String getSqlSearch() {
|
||||||
return this.sqlSearch;
|
return this.sqlSearch;
|
||||||
|
|||||||
Reference in New Issue
Block a user