@Override public QueryResult<Group> getGroup(long studyId, @Nullable String groupId, List<String> userIds) throws CatalogDBException { long startTime = startQuery(); checkId(studyId); if (userIds == null) { userIds = Collections.emptyList(); } List<Bson> aggregation = new ArrayList<>(); aggregation.add(Aggregates.match(Filters.eq(PRIVATE_UID, studyId))); aggregation.add(Aggregates.project(Projections.include(QueryParams.GROUPS.key()))); aggregation.add(Aggregates.unwind("$" + QueryParams.GROUPS.key())); if (userIds.size() > 0) { aggregation.add(Aggregates.match(Filters.in(QueryParams.GROUP_USER_IDS.key(), userIds))); } if (groupId != null && groupId.length() > 0) { aggregation.add(Aggregates.match(Filters.eq(QueryParams.GROUP_NAME.key(), groupId))); } QueryResult<Document> queryResult = studyCollection.aggregate(aggregation, null); List<Study> studies = MongoDBUtils.parseStudies(queryResult); List<Group> groups = new ArrayList<>(); studies.stream().filter(study -> study.getGroups() != null).forEach(study -> groups.addAll(study.getGroups())); return endQuery("getGroup", startTime, groups); }
private Map<String, Group> getGroupMap() throws CatalogException { return catalogManager.getStudyManager().get(studyFqn, null, ownerSessionId).first().getGroups() .stream() .collect(Collectors.toMap(Group::getName, f -> f)); }
for (Group group : study.getGroups()) { if (group.getName().equalsIgnoreCase("admins") && group.getUserIds().contains(userId)) { studyAliases.add(study.getAlias());
study.getGroups().forEach(group -> { if (group.getUserIds().contains(userId)) { groups.add(group.getName());
.setDiskUsage(study.getSize()) .setExperiments(study.getExperiments()) .setGroups(study.getGroups()) .setName(study.getName()) .setStats(study.getStats())