@Override public QueryResult groupBy(@Nullable String studyStr, Query query, List<String> fields, QueryOptions options, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); options = ParamUtils.defaultObject(options, QueryOptions::new); if (fields == null || fields.size() == 0) { throw new CatalogException("Empty fields parameter."); } String userId = userManager.getUserId(sessionId); Study study = studyManager.resolveId(studyStr, userId); Query finalQuery = new Query(query); fixQueryObject(study, finalQuery, sessionId); // Fix query if it contains any annotation AnnotationUtils.fixQueryAnnotationSearch(study, userId, query, authorizationManager); AnnotationUtils.fixQueryOptionAnnotation(options); // Add study id to the query finalQuery.put(FamilyDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); QueryResult queryResult = familyDBAdaptor.groupBy(finalQuery, fields, options, userId); return ParamUtils.defaultObject(queryResult, QueryResult::new); }
public QueryResult<Family> count(String studyStr, Query query, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = studyManager.resolveId(studyStr, userId, new QueryOptions(QueryOptions.INCLUDE, StudyDBAdaptor.QueryParams.VARIABLE_SET.key())); Query finalQuery = new Query(query); // Fix query if it contains any annotation AnnotationUtils.fixQueryAnnotationSearch(study, finalQuery); fixQueryObject(study, finalQuery, sessionId); finalQuery.append(FamilyDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); QueryResult<Long> queryResultAux = familyDBAdaptor.count(finalQuery, userId, StudyAclEntry.StudyPermissions.VIEW_FAMILIES); return new QueryResult<>("count", queryResultAux.getDbTime(), 0, queryResultAux.first(), queryResultAux.getWarningMsg(), queryResultAux.getErrorMsg(), Collections.emptyList()); }
public QueryResult<Family> search(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); options = ParamUtils.defaultObject(options, QueryOptions::new); String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = studyManager.resolveId(studyStr, userId, new QueryOptions(QueryOptions.INCLUDE, StudyDBAdaptor.QueryParams.VARIABLE_SET.key())); Query finalQuery = new Query(query); // Fix query if it contains any annotation AnnotationUtils.fixQueryAnnotationSearch(study, finalQuery); AnnotationUtils.fixQueryOptionAnnotation(options); fixQueryObject(study, finalQuery, sessionId); finalQuery.append(FamilyDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); QueryResult<Family> queryResult = familyDBAdaptor.get(finalQuery, options, userId); // addMemberInformation(queryResult, study.getUid(), sessionId); return queryResult; }
fixQueryObject(study, finalQuery, sessionId); finalQuery.append(FamilyDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid());