Merge pull request #1371 from chandrikamohith/MIFOSX-2028
MIFOSX-2028 Adding query param OrphansOnly to Groups API.
This commit is contained in:
+29
-11
@@ -27,6 +27,7 @@ public final class SearchParameters {
|
||||
private final Long loanId;
|
||||
|
||||
private final Long savingsId;
|
||||
private final Boolean orphansOnly;
|
||||
|
||||
public static SearchParameters from(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||
final String hierarchy) {
|
||||
@@ -34,8 +35,9 @@ public final class SearchParameters {
|
||||
final String accountNo = null;
|
||||
final Long loanId = null;
|
||||
final Long savingsId = null;
|
||||
final Boolean orphansOnly = false;
|
||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, null, null, null, null, staffId,
|
||||
accountNo, loanId, savingsId);
|
||||
accountNo, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forClients(final String sqlSearch, final Long officeId, final String externalId,
|
||||
@@ -47,14 +49,15 @@ public final class SearchParameters {
|
||||
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);
|
||||
orderBy, sortOrder, staffId, accountNo, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forGroups(final String sqlSearch, final Long officeId, final Long staffId, final String externalId,
|
||||
final String name, final String hierarchy, final Integer offset, final Integer limit, final String orderBy,
|
||||
final String sortOrder) {
|
||||
final String sortOrder, final Boolean orphansOnly) {
|
||||
|
||||
final Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||
final String accountNo = null;
|
||||
@@ -62,11 +65,12 @@ public final class SearchParameters {
|
||||
final Long savingsId = null;
|
||||
|
||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed, orderBy,
|
||||
sortOrder, staffId, accountNo, loanId, savingsId);
|
||||
sortOrder, staffId, accountNo, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forOffices(final String orderBy, final String sortOrder) {
|
||||
return new SearchParameters(null, null, null, null, null, null, null, null, null, orderBy, sortOrder, null, null, null, null);
|
||||
final Boolean orphansOnly = false;
|
||||
return new SearchParameters(null, null, null, null, null, null, null, null, null, orderBy, sortOrder, null, null, null, null, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forLoans(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
||||
@@ -76,9 +80,10 @@ public final class SearchParameters {
|
||||
final Long staffId = null;
|
||||
final Long loanId = null;
|
||||
final Long savingsId = null;
|
||||
final Boolean orphansOnly = false;
|
||||
|
||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
||||
staffId, accountNo, loanId, savingsId);
|
||||
staffId, accountNo, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forJournalEntries(final Long officeId, final Integer offset, final Integer limit, final String orderBy,
|
||||
@@ -86,9 +91,10 @@ public final class SearchParameters {
|
||||
|
||||
final Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||
final Long staffId = null;
|
||||
final Boolean orphansOnly = false;
|
||||
|
||||
return new SearchParameters(null, officeId, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId,
|
||||
null, loanId, savingsId);
|
||||
null, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forPagination(final Integer offset, final Integer limit, final String orderBy, final String sortOrder) {
|
||||
@@ -97,9 +103,10 @@ public final class SearchParameters {
|
||||
final Long staffId = null;
|
||||
final Long loanId = null;
|
||||
final Long savingsId = null;
|
||||
final Boolean orphansOnly = false;
|
||||
|
||||
return new SearchParameters(null, null, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId, null,
|
||||
loanId, savingsId);
|
||||
loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forSavings(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
||||
@@ -110,9 +117,10 @@ public final class SearchParameters {
|
||||
final String accountNo = null;
|
||||
final Long loanId = null;
|
||||
final Long savingsId = null;
|
||||
final Boolean orphansOnly = false;
|
||||
|
||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
||||
staffId, accountNo, loanId, savingsId);
|
||||
staffId, accountNo, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
public static SearchParameters forAccountTransfer(final String sqlSearch, final String externalId, final Integer offset,
|
||||
@@ -123,15 +131,16 @@ public final class SearchParameters {
|
||||
final String accountNo = null;
|
||||
final Long loanId = null;
|
||||
final Long savingsId = null;
|
||||
final Boolean orphansOnly = false;
|
||||
|
||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
||||
staffId, accountNo, loanId, savingsId);
|
||||
staffId, accountNo, loanId, savingsId, orphansOnly);
|
||||
}
|
||||
|
||||
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 orderBy, final String sortOrder, final Long staffId, final String accountNo, final Long loanId,
|
||||
final Long savingsId) {
|
||||
final Long savingsId, final Boolean orphansOnly) {
|
||||
this.sqlSearch = sqlSearch;
|
||||
this.officeId = officeId;
|
||||
this.externalId = externalId;
|
||||
@@ -147,6 +156,7 @@ public final class SearchParameters {
|
||||
this.accountNo = accountNo;
|
||||
this.loanId = loanId;
|
||||
this.savingsId = savingsId;
|
||||
this.orphansOnly = orphansOnly;
|
||||
}
|
||||
|
||||
public boolean isOrderByRequested() {
|
||||
@@ -260,4 +270,12 @@ public final class SearchParameters {
|
||||
public Long getSavingsId() {
|
||||
return this.savingsId;
|
||||
}
|
||||
|
||||
public Boolean isOrphansOnly(){
|
||||
if(this.orphansOnly != null){
|
||||
return this.orphansOnly;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -176,7 +176,7 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService
|
||||
|
||||
if (displayName != null) {
|
||||
extraCriteria += " and concat(ifnull(c.firstname, ''), if(c.firstname > '',' ', '') , ifnull(c.lastname, '')) like "
|
||||
+ ApiParameterHelper.sqlEncodeString(displayName);
|
||||
+ ApiParameterHelper.sqlEncodeString("%" + displayName + "%");
|
||||
}
|
||||
|
||||
if (firstname != null) {
|
||||
|
||||
+2
-1
@@ -148,8 +148,9 @@ public class CentersApiResource {
|
||||
GroupingTypesApiConstants.STAFF_CENTER_RESPONSE_DATA_PARAMETERS);
|
||||
}
|
||||
final PaginationParameters parameters = PaginationParameters.instance(paged, offset, limit, orderBy, sortOrder);
|
||||
final Boolean isOrphansOnly = false;
|
||||
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, staffId, externalId, name, hierarchy,
|
||||
offset, limit, orderBy, sortOrder);
|
||||
offset, limit, orderBy, sortOrder, isOrphansOnly);
|
||||
if (parameters.isPaged()) {
|
||||
final Page<CenterData> centers = this.centerReadPlatformService.retrievePagedAll(searchParameters, parameters);
|
||||
return this.toApiJsonSerializer.serialize(settings, centers, GroupingTypesApiConstants.CENTER_RESPONSE_DATA_PARAMETERS);
|
||||
|
||||
+3
-2
@@ -157,14 +157,15 @@ public class GroupsApiResource {
|
||||
@QueryParam("externalId") final String externalId, @QueryParam("name") final String name,
|
||||
@QueryParam("underHierarchy") final String hierarchy, @QueryParam("paged") final Boolean paged,
|
||||
@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(GroupingTypesApiConstants.GROUP_RESOURCE_NAME);
|
||||
final PaginationParameters parameters = PaginationParameters.instance(paged, offset, limit, orderBy, sortOrder);
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, staffId, externalId, name, hierarchy,
|
||||
offset, limit, orderBy, sortOrder);
|
||||
offset, limit, orderBy, sortOrder, orphansOnly);
|
||||
if (parameters.isPaged()) {
|
||||
final Page<GroupGeneralData> groups = this.groupReadPlatformService.retrievePagedAll(searchParameters, parameters);
|
||||
return this.toApiJsonSerializer.serialize(settings, groups, GroupingTypesApiConstants.GROUP_RESPONSE_DATA_PARAMETERS);
|
||||
|
||||
+4
@@ -237,6 +237,10 @@ public class GroupReadPlatformServiceImpl implements GroupReadPlatformService {
|
||||
if (staffId != null) {
|
||||
extraCriteria.append(" and g.staff_id = ").append(staffId);
|
||||
}
|
||||
|
||||
if(searchCriteria.isOrphansOnly()){
|
||||
extraCriteria.append(" and g.parent_id IS NULL");
|
||||
}
|
||||
|
||||
return extraCriteria.toString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user