Search in sources :

Example 1 with PROGRAM_ID

use of org.hisp.dhis.dataitem.query.shared.QueryParam.PROGRAM_ID in project dhis2-core by dhis2.

the class FilteringHelper method setFilteringParams.

/**
 * Sets the filtering defined by filters list into the paramsMap.
 *
 * @param filters the source of filtering params
 * @param paramsMap the map that will receive the filtering params
 * @param currentUser the current user logged
 */
public static void setFilteringParams(final Set<String> filters, final WebOptions options, final MapSqlParameterSource paramsMap, final User currentUser) {
    final Locale currentLocale = defaultIfNull(getUserSetting(DB_LOCALE), getUserSetting(UI_LOCALE));
    if (currentLocale != null && isNotBlank(currentLocale.getLanguage())) {
        paramsMap.addValue(LOCALE, trimToEmpty(currentLocale.getLanguage()));
    }
    final String ilikeName = extractValueFromFilter(filters, NAME_ILIKE);
    if (StringUtils.isNotEmpty(ilikeName)) {
        paramsMap.addValue(NAME, wrap(addIlikeReplacingCharacters(ilikeName), "%"));
    }
    final String ilikeDisplayName = extractValueFromFilter(filters, DISPLAY_NAME_ILIKE);
    if (StringUtils.isNotEmpty(ilikeDisplayName)) {
        paramsMap.addValue(DISPLAY_NAME, wrap(addIlikeReplacingCharacters(ilikeDisplayName), "%"));
    }
    final String ilikeShortName = extractValueFromFilter(filters, SHORT_NAME_ILIKE);
    if (StringUtils.isNotEmpty(ilikeShortName)) {
        paramsMap.addValue(SHORT_NAME, wrap(addIlikeReplacingCharacters(ilikeShortName), "%"));
    }
    final String ilikeDisplayShortName = extractValueFromFilter(filters, DISPLAY_SHORT_NAME_ILIKE);
    if (StringUtils.isNotEmpty(ilikeDisplayShortName)) {
        paramsMap.addValue(DISPLAY_SHORT_NAME, wrap(addIlikeReplacingCharacters(ilikeDisplayShortName), "%"));
    }
    final String equalId = extractValueFromFilter(filters, ID_EQUAL, true);
    if (isNotBlank(equalId)) {
        paramsMap.addValue(UID, equalId);
    }
    final String rootJunction = options.getRootJunction().name();
    if (isNotBlank(rootJunction)) {
        paramsMap.addValue(ROOT_JUNCTION, rootJunction);
    }
    final String identifiableToken = extractValueFromFilter(filters, IDENTIFIABLE_TOKEN);
    if (identifiableToken != null) {
        final List<String> wordsAsTokens = getTokens(identifiableToken);
        if (CollectionUtils.isNotEmpty(wordsAsTokens)) {
            paramsMap.addValue(IDENTIFIABLE_TOKEN_COMPARISON, StringUtils.join(wordsAsTokens, ","));
        }
    }
    if (containsFilterWithAnyOfPrefixes(filters, VALUE_TYPE_EQUAL.getCombination(), VALUE_TYPE_IN.getCombination())) {
        final Set<String> valueTypesFilter = extractAllValueTypesFromFilters(filters);
        assertThatValueTypeFilterHasOnlyAggregatableTypes(valueTypesFilter, filters);
        paramsMap.addValue(VALUE_TYPES, extractAllValueTypesFromFilters(filters));
    } else {
        // Includes all value types.
        paramsMap.addValue(VALUE_TYPES, getAggregatables().stream().map(type -> type.name()).collect(toSet()));
    }
    final String programId = extractValueFromFilter(filters, PROGRAM_ID_EQUAL, true);
    // Add program id filtering id, if present.
    if (isNotBlank(programId)) {
        paramsMap.addValue(PROGRAM_ID, programId);
    }
    // Add user group filtering, when present.
    if (currentUser != null && CollectionUtils.isNotEmpty(currentUser.getGroups())) {
        final Set<String> userGroupUids = currentUser.getGroups().stream().filter(group -> group != null).map(group -> trimToEmpty(group.getUid())).collect(toSet());
        paramsMap.addValue(USER_GROUP_UIDS, "{" + join(",", userGroupUids) + "}");
    }
}
Also used : Locale(java.util.Locale) StringUtils.trimToEmpty(org.apache.commons.lang3.StringUtils.trimToEmpty) ValueType(org.hisp.dhis.common.ValueType) TokenUtils.getTokens(org.hisp.dhis.query.operators.TokenUtils.getTokens) UserContext.getUserSetting(org.hisp.dhis.common.UserContext.getUserSetting) StringUtils(org.apache.commons.lang3.StringUtils) ErrorMessage(org.hisp.dhis.feedback.ErrorMessage) ValueType.fromString(org.hisp.dhis.common.ValueType.fromString) ValueType.getAggregatables(org.hisp.dhis.common.ValueType.getAggregatables) Locale(java.util.Locale) LOCALE(org.hisp.dhis.dataitem.query.shared.QueryParam.LOCALE) FilterValidator.containsFilterWithAnyOfPrefixes(org.hisp.dhis.webapi.controller.dataitem.validator.FilterValidator.containsFilterWithAnyOfPrefixes) SHORT_NAME(org.hisp.dhis.dataitem.query.shared.QueryParam.SHORT_NAME) UI_LOCALE(org.hisp.dhis.user.UserSettingKey.UI_LOCALE) Collectors.toSet(java.util.stream.Collectors.toSet) VALUE_TYPE_EQUAL(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.VALUE_TYPE_EQUAL) ArrayUtils.isNotEmpty(org.apache.commons.lang3.ArrayUtils.isNotEmpty) QueryableDataItem(org.hisp.dhis.dataitem.query.QueryableDataItem) NAME(org.hisp.dhis.dataitem.query.shared.QueryParam.NAME) BaseIdentifiableObject(org.hisp.dhis.common.BaseIdentifiableObject) Set(java.util.Set) E2014(org.hisp.dhis.feedback.ErrorCode.E2014) StringUtils.substringBetween(org.apache.commons.lang3.StringUtils.substringBetween) StringUtils.wrap(org.apache.commons.lang3.StringUtils.wrap) SHORT_NAME_ILIKE(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.SHORT_NAME_ILIKE) StringUtils.deleteWhitespace(org.apache.commons.lang3.StringUtils.deleteWhitespace) DISPLAY_NAME_ILIKE(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.DISPLAY_NAME_ILIKE) List(java.util.List) StringUtils.isNotBlank(org.apache.commons.lang3.StringUtils.isNotBlank) NAME_ILIKE(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.NAME_ILIKE) IDENTIFIABLE_TOKEN(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.IDENTIFIABLE_TOKEN) PROGRAM_ID(org.hisp.dhis.dataitem.query.shared.QueryParam.PROGRAM_ID) Filter(org.hisp.dhis.webapi.controller.dataitem.Filter) DISPLAY_NAME(org.hisp.dhis.dataitem.query.shared.QueryParam.DISPLAY_NAME) ROOT_JUNCTION(org.hisp.dhis.dataitem.query.shared.QueryParam.ROOT_JUNCTION) WebOptions(org.hisp.dhis.webapi.webdomain.WebOptions) DIMENSION_TYPE_IN(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.DIMENSION_TYPE_IN) DISPLAY_SHORT_NAME(org.hisp.dhis.dataitem.query.shared.QueryParam.DISPLAY_SHORT_NAME) StatementUtil.addIlikeReplacingCharacters(org.hisp.dhis.dataitem.query.shared.StatementUtil.addIlikeReplacingCharacters) MapSqlParameterSource(org.springframework.jdbc.core.namedparam.MapSqlParameterSource) ObjectUtils.defaultIfNull(org.apache.commons.lang3.ObjectUtils.defaultIfNull) IllegalQueryException(org.hisp.dhis.common.IllegalQueryException) PROGRAM_ID_EQUAL(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.PROGRAM_ID_EQUAL) CollectionUtils(org.apache.commons.collections4.CollectionUtils) HashSet(java.util.HashSet) StringUtils.contains(org.apache.commons.lang3.StringUtils.contains) Enums.getIfPresent(com.google.common.base.Enums.getIfPresent) String.join(java.lang.String.join) E2016(org.hisp.dhis.feedback.ErrorCode.E2016) USER_GROUP_UIDS(org.hisp.dhis.dataitem.query.shared.QueryParam.USER_GROUP_UIDS) EMPTY(org.apache.commons.lang3.StringUtils.EMPTY) User(org.hisp.dhis.user.User) DIMENSION_TYPE_EQUAL(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.DIMENSION_TYPE_EQUAL) StringUtils.split(org.apache.commons.lang3.StringUtils.split) ID_EQUAL(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.ID_EQUAL) VALUE_TYPE_IN(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.VALUE_TYPE_IN) DB_LOCALE(org.hisp.dhis.user.UserSettingKey.DB_LOCALE) Iterator(java.util.Iterator) VALUE_TYPES(org.hisp.dhis.dataitem.query.shared.QueryParam.VALUE_TYPES) DISPLAY_SHORT_NAME_ILIKE(org.hisp.dhis.webapi.controller.dataitem.Filter.Combination.DISPLAY_SHORT_NAME_ILIKE) FilterValidator.filterHasPrefix(org.hisp.dhis.webapi.controller.dataitem.validator.FilterValidator.filterHasPrefix) Collectors.toList(java.util.stream.Collectors.toList) EnumUtils.getEnumMap(org.apache.commons.lang3.EnumUtils.getEnumMap) IDENTIFIABLE_TOKEN_COMPARISON(org.hisp.dhis.dataitem.query.shared.QueryParam.IDENTIFIABLE_TOKEN_COMPARISON) UID(org.hisp.dhis.dataitem.query.shared.QueryParam.UID) ValueType.fromString(org.hisp.dhis.common.ValueType.fromString)

Aggregations

Enums.getIfPresent (com.google.common.base.Enums.getIfPresent)1 String.join (java.lang.String.join)1 HashSet (java.util.HashSet)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Locale (java.util.Locale)1 Set (java.util.Set)1 Collectors.toList (java.util.stream.Collectors.toList)1 Collectors.toSet (java.util.stream.Collectors.toSet)1 CollectionUtils (org.apache.commons.collections4.CollectionUtils)1 ArrayUtils.isNotEmpty (org.apache.commons.lang3.ArrayUtils.isNotEmpty)1 EnumUtils.getEnumMap (org.apache.commons.lang3.EnumUtils.getEnumMap)1 ObjectUtils.defaultIfNull (org.apache.commons.lang3.ObjectUtils.defaultIfNull)1 StringUtils (org.apache.commons.lang3.StringUtils)1 EMPTY (org.apache.commons.lang3.StringUtils.EMPTY)1 StringUtils.contains (org.apache.commons.lang3.StringUtils.contains)1 StringUtils.deleteWhitespace (org.apache.commons.lang3.StringUtils.deleteWhitespace)1 StringUtils.isNotBlank (org.apache.commons.lang3.StringUtils.isNotBlank)1 StringUtils.split (org.apache.commons.lang3.StringUtils.split)1 StringUtils.substringBetween (org.apache.commons.lang3.StringUtils.substringBetween)1