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 loanId;
|
||||||
|
|
||||||
private final Long savingsId;
|
private final Long savingsId;
|
||||||
|
private final Boolean orphansOnly;
|
||||||
|
|
||||||
public static SearchParameters from(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
public static SearchParameters from(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||||
final String hierarchy) {
|
final String hierarchy) {
|
||||||
@@ -34,8 +35,9 @@ public final class SearchParameters {
|
|||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
final Long loanId = null;
|
final Long loanId = null;
|
||||||
final Long savingsId = null;
|
final Long savingsId = null;
|
||||||
|
final Boolean orphansOnly = false;
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, null, null, null, null, staffId,
|
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,
|
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 String accountNo = null;
|
||||||
final Long loanId = null;
|
final Long loanId = null;
|
||||||
final Long savingsId = null;
|
final Long savingsId = null;
|
||||||
|
final Boolean orphansOnly = false;
|
||||||
|
|
||||||
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, 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,
|
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 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 Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
@@ -62,11 +65,12 @@ public final class SearchParameters {
|
|||||||
final Long savingsId = null;
|
final Long savingsId = null;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed, orderBy,
|
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) {
|
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,
|
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 staffId = null;
|
||||||
final Long loanId = null;
|
final Long loanId = null;
|
||||||
final Long savingsId = null;
|
final Long savingsId = null;
|
||||||
|
final Boolean orphansOnly = false;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
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,
|
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 Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
final Long staffId = null;
|
final Long staffId = null;
|
||||||
|
final Boolean orphansOnly = false;
|
||||||
|
|
||||||
return new SearchParameters(null, officeId, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId,
|
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) {
|
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 staffId = null;
|
||||||
final Long loanId = null;
|
final Long loanId = null;
|
||||||
final Long savingsId = 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,
|
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,
|
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 String accountNo = null;
|
||||||
final Long loanId = null;
|
final Long loanId = null;
|
||||||
final Long savingsId = null;
|
final Long savingsId = null;
|
||||||
|
final Boolean orphansOnly = false;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
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,
|
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 String accountNo = null;
|
||||||
final Long loanId = null;
|
final Long loanId = null;
|
||||||
final Long savingsId = null;
|
final Long savingsId = null;
|
||||||
|
final Boolean orphansOnly = false;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
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,
|
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,
|
||||||
final String orderBy, final String sortOrder, final Long staffId, final String accountNo, final Long loanId,
|
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.sqlSearch = sqlSearch;
|
||||||
this.officeId = officeId;
|
this.officeId = officeId;
|
||||||
this.externalId = externalId;
|
this.externalId = externalId;
|
||||||
@@ -147,6 +156,7 @@ public final class SearchParameters {
|
|||||||
this.accountNo = accountNo;
|
this.accountNo = accountNo;
|
||||||
this.loanId = loanId;
|
this.loanId = loanId;
|
||||||
this.savingsId = savingsId;
|
this.savingsId = savingsId;
|
||||||
|
this.orphansOnly = orphansOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOrderByRequested() {
|
public boolean isOrderByRequested() {
|
||||||
@@ -260,4 +270,12 @@ public final class SearchParameters {
|
|||||||
public Long getSavingsId() {
|
public Long getSavingsId() {
|
||||||
return this.savingsId;
|
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) {
|
if (displayName != null) {
|
||||||
extraCriteria += " and concat(ifnull(c.firstname, ''), if(c.firstname > '',' ', '') , ifnull(c.lastname, '')) like "
|
extraCriteria += " and concat(ifnull(c.firstname, ''), if(c.firstname > '',' ', '') , ifnull(c.lastname, '')) like "
|
||||||
+ ApiParameterHelper.sqlEncodeString(displayName);
|
+ ApiParameterHelper.sqlEncodeString("%" + displayName + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firstname != null) {
|
if (firstname != null) {
|
||||||
|
|||||||
+2
-1
@@ -148,8 +148,9 @@ public class CentersApiResource {
|
|||||||
GroupingTypesApiConstants.STAFF_CENTER_RESPONSE_DATA_PARAMETERS);
|
GroupingTypesApiConstants.STAFF_CENTER_RESPONSE_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
final PaginationParameters parameters = PaginationParameters.instance(paged, offset, limit, orderBy, sortOrder);
|
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,
|
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, staffId, externalId, name, hierarchy,
|
||||||
offset, limit, orderBy, sortOrder);
|
offset, limit, orderBy, sortOrder, isOrphansOnly);
|
||||||
if (parameters.isPaged()) {
|
if (parameters.isPaged()) {
|
||||||
final Page<CenterData> centers = this.centerReadPlatformService.retrievePagedAll(searchParameters, parameters);
|
final Page<CenterData> centers = this.centerReadPlatformService.retrievePagedAll(searchParameters, parameters);
|
||||||
return this.toApiJsonSerializer.serialize(settings, centers, GroupingTypesApiConstants.CENTER_RESPONSE_DATA_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("externalId") final String externalId, @QueryParam("name") final String name,
|
||||||
@QueryParam("underHierarchy") final String hierarchy, @QueryParam("paged") final Boolean paged,
|
@QueryParam("underHierarchy") final String hierarchy, @QueryParam("paged") final Boolean paged,
|
||||||
@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
@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);
|
this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.GROUP_RESOURCE_NAME);
|
||||||
final PaginationParameters parameters = PaginationParameters.instance(paged, offset, limit, orderBy, sortOrder);
|
final PaginationParameters parameters = PaginationParameters.instance(paged, offset, limit, orderBy, sortOrder);
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
|
|
||||||
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, staffId, externalId, name, hierarchy,
|
final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, staffId, externalId, name, hierarchy,
|
||||||
offset, limit, orderBy, sortOrder);
|
offset, limit, orderBy, sortOrder, orphansOnly);
|
||||||
if (parameters.isPaged()) {
|
if (parameters.isPaged()) {
|
||||||
final Page<GroupGeneralData> groups = this.groupReadPlatformService.retrievePagedAll(searchParameters, parameters);
|
final Page<GroupGeneralData> groups = this.groupReadPlatformService.retrievePagedAll(searchParameters, parameters);
|
||||||
return this.toApiJsonSerializer.serialize(settings, groups, GroupingTypesApiConstants.GROUP_RESPONSE_DATA_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) {
|
if (staffId != null) {
|
||||||
extraCriteria.append(" and g.staff_id = ").append(staffId);
|
extraCriteria.append(" and g.staff_id = ").append(staffId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(searchCriteria.isOrphansOnly()){
|
||||||
|
extraCriteria.append(" and g.parent_id IS NULL");
|
||||||
|
}
|
||||||
|
|
||||||
return extraCriteria.toString();
|
return extraCriteria.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user