use of org.alfresco.rest.api.model.Activity in project alfresco-remote-api by Alfresco.
the class ActivitiesImpl method getUserActivities.
public CollectionWithPagingInfo<Activity> getUserActivities(String personId, final Parameters parameters) {
personId = people.validatePerson(personId);
Paging paging = parameters.getPaging();
String siteId = parameters.getParameter("siteId");
String who = parameters.getParameter("who");
ActivityWho activityWho = null;
if (who != null) {
try {
activityWho = ActivityWho.valueOf(who);
} catch (IllegalArgumentException e) {
throw new InvalidArgumentException("Parameter who should be one of " + Arrays.toString(ActivityWho.values()));
}
}
if (siteId != null && !siteId.equals("")) {
SiteInfo siteInfo = sites.validateSite(siteId);
if (siteInfo == null) {
// site does not exist
throw new EntityNotFoundException(siteId);
}
// set the site id to the short name (to deal with case sensitivity issues with using the siteId from the url)
siteId = siteInfo.getShortName();
}
try {
PagingResults<ActivityFeedEntity> activities = null;
if (activityWho == null) {
activities = activityService.getPagedUserFeedEntries(personId, siteId, false, false, -1, Util.getPagingRequest(paging));
} else if (activityWho.equals(ActivityWho.me)) {
activities = activityService.getPagedUserFeedEntries(personId, siteId, false, true, -1, Util.getPagingRequest(paging));
} else if (activityWho.equals(ActivityWho.others)) {
activities = activityService.getPagedUserFeedEntries(personId, siteId, true, false, -1, Util.getPagingRequest(paging));
} else {
throw new InvalidArgumentException("Who argument is invalid.");
}
List<ActivityFeedEntity> feedEntities = activities.getPage();
List<Activity> ret = new ArrayList<Activity>(feedEntities.size());
for (ActivityFeedEntity entity : feedEntities) {
String feedSiteId = getSiteId(entity.getSiteNetwork());
String networkId = tenantService.getDomain(entity.getSiteNetwork());
Activity activity = new Activity(entity.getId(), networkId, feedSiteId, entity.getFeedUserId(), entity.getPostUserId(), entity.getPostDate(), entity.getActivityType(), getActivitySummary(entity));
ret.add(activity);
}
return CollectionWithPagingInfo.asPaged(paging, ret, activities.hasMoreItems(), activities.getTotalResultCount().getFirst());
} catch (JSONException e) {
throw new AlfrescoRuntimeException("", e);
}
}
Aggregations