mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
REPO-1058 / REPO-1242: REST API - list sites that person is member of - fix orderBy (id, title or role)
- fix orderBy validation as per existing capabilities - TODO add tests (see REPO-1244) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@130774 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -77,4 +77,6 @@ public interface Sites
|
|||||||
String PARAM_SITE_ID = "id";
|
String PARAM_SITE_ID = "id";
|
||||||
String PARAM_SITE_TITLE = "title";
|
String PARAM_SITE_TITLE = "title";
|
||||||
String PARAM_SITE_DESCRIPTION = "description";
|
String PARAM_SITE_DESCRIPTION = "description";
|
||||||
|
|
||||||
|
String PARAM_SITE_ROLE = "role";
|
||||||
}
|
}
|
||||||
|
@@ -125,6 +125,16 @@ public class SitesImpl implements Sites
|
|||||||
SORT_PARAMS_TO_QNAMES = Collections.unmodifiableMap(aMap);
|
SORT_PARAMS_TO_QNAMES = Collections.unmodifiableMap(aMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final static Map<String,SiteService.SortFields> SORT_SITE_MEMBERSHIP;
|
||||||
|
static
|
||||||
|
{
|
||||||
|
Map<String,SiteService.SortFields> aMap = new HashMap<>(3);
|
||||||
|
aMap.put(PARAM_SITE_TITLE, SiteService.SortFields.SiteTitle);
|
||||||
|
aMap.put(PARAM_SITE_ID, SiteService.SortFields.SiteShortName);
|
||||||
|
aMap.put(PARAM_SITE_ROLE, SiteService.SortFields.Role);
|
||||||
|
SORT_SITE_MEMBERSHIP = Collections.unmodifiableMap(aMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected Nodes nodes;
|
protected Nodes nodes;
|
||||||
protected People people;
|
protected People people;
|
||||||
@@ -500,35 +510,31 @@ public class SitesImpl implements Sites
|
|||||||
PagingRequest pagingRequest = Util.getPagingRequest(paging);
|
PagingRequest pagingRequest = Util.getPagingRequest(paging);
|
||||||
|
|
||||||
// get the sorting options
|
// get the sorting options
|
||||||
List<Pair<? extends Object, SortOrder>> sortPairs = new ArrayList<Pair<? extends Object, SortOrder>>(parameters.getSorting().size());
|
List<Pair<? extends Object, SortOrder>> sortPairs = new ArrayList<>(parameters.getSorting().size());
|
||||||
for (SortColumn sortColumn : parameters.getSorting())
|
|
||||||
|
List<SortColumn> sortCols = parameters.getSorting();
|
||||||
|
if ((sortCols != null) && (sortCols.size() > 0))
|
||||||
{
|
{
|
||||||
SiteService.SortFields sortField;
|
for (SortColumn sortCol : sortCols)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
sortField= SiteService.SortFields.valueOf(sortColumn.column);
|
SiteService.SortFields sortProp = SORT_SITE_MEMBERSHIP.get(sortCol.column);
|
||||||
}
|
if (sortProp == null)
|
||||||
catch (IllegalArgumentException ex)
|
{
|
||||||
{
|
throw new InvalidArgumentException("Invalid sort field: "+sortCol.column);
|
||||||
// invalid sort field
|
}
|
||||||
continue;
|
sortPairs.add(new Pair<>(sortProp, (sortCol.asc ? SortOrder.ASCENDING : SortOrder.DESCENDING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
sortPairs.add(new Pair<SiteService.SortFields, SortOrder>(
|
|
||||||
sortField,
|
|
||||||
(sortColumn.asc ? SortOrder.ASCENDING : SortOrder.DESCENDING)));
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
// if no sorting options were specify, sort by title
|
|
||||||
if(sortPairs.size() == 0)
|
|
||||||
{
|
{
|
||||||
|
// default sort order
|
||||||
sortPairs.add(new Pair<SiteService.SortFields, SortOrder>(
|
sortPairs.add(new Pair<SiteService.SortFields, SortOrder>(
|
||||||
SiteService.SortFields.SiteTitle,
|
SiteService.SortFields.SiteTitle,
|
||||||
SortOrder.ASCENDING ));
|
SortOrder.ASCENDING ));
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the unsorted list of site memberships
|
// get the unsorted list of site memberships
|
||||||
List<SiteMembership> siteMembers = siteService.listSiteMemberships (personId, 0);
|
List<SiteMembership> siteMembers = siteService.listSiteMemberships(personId, 0);
|
||||||
|
|
||||||
// sort the list of site memberships
|
// sort the list of site memberships
|
||||||
int totalSize = siteMembers.size();
|
int totalSize = siteMembers.size();
|
||||||
|
Reference in New Issue
Block a user