Merge pull request #1377 from chandrikamohith/ClientApiChanges

MIFOSX-2035 Added new boolean parameter optionsOnly to retrieve all c…
This commit is contained in:
Vishwas Babu A J
2015-05-12 10:44:33 -07:00
3 changed files with 8 additions and 4 deletions
@@ -42,14 +42,13 @@ public final class SearchParameters {
public static SearchParameters forClients(final String sqlSearch, final Long officeId, final String externalId,
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, final Boolean orphansOnly) {
final Integer maxLimitAllowed = getCheckedLimit(limit);
final Long staffId = null;
final String accountNo = null;
final Long loanId = null;
final Long savingsId = null;
final Boolean orphansOnly = false;
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
orderBy, sortOrder, staffId, accountNo, loanId, savingsId, orphansOnly);
@@ -114,12 +114,13 @@ public class ClientsApiResource {
@QueryParam("displayName") final String displayName, @QueryParam("firstName") final String firstname,
@QueryParam("lastName") final String lastname, @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) {
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder,
@QueryParam("orphansOnly") final Boolean orphansOnly) {
this.context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_RESOURCE_NAME);
final SearchParameters searchParameters = SearchParameters.forClients(sqlSearch, officeId, externalId, displayName, firstname,
lastname, hierarchy, offset, limit, orderBy, sortOrder);
lastname, hierarchy, offset, limit, orderBy, sortOrder, orphansOnly);
final Page<ClientData> clientData = this.clientReadPlatformService.retrieveAll(searchParameters);
@@ -190,6 +190,10 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService
if (searchParameters.isScopedByOfficeHierarchy()) {
extraCriteria += " and o.hierarchy like " + ApiParameterHelper.sqlEncodeString(searchParameters.getHierarchy() + "%");
}
if(searchParameters.isOrphansOnly()){
extraCriteria += " and c.id NOT IN (select client_id from m_group_client) ";
}
if (StringUtils.isNotBlank(extraCriteria)) {
extraCriteria = extraCriteria.substring(4);