github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/pkg/config/hiddenapps.go (about)

     1  package config
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/kyma-incubator/compass/components/director/pkg/apperrors"
     7  )
     8  
     9  const applicationHideSelectorsPath = "applicationHideSelectors"
    10  
    11  // GetApplicationHideSelectors missing godoc
    12  func (p *Provider) GetApplicationHideSelectors() (map[string][]string, error) {
    13  	val, err := p.getValueForJSONPath(applicationHideSelectorsPath)
    14  	if err != nil {
    15  		if apperrors.IsValueNotFoundInConfiguration(err) {
    16  			return nil, nil
    17  		}
    18  		return nil, err
    19  	}
    20  
    21  	selectorsMap, ok := val.(map[string]interface{})
    22  	if !ok {
    23  		return nil, fmt.Errorf("unexpected application hide selectors definition, should be a map, but was %T", val)
    24  	}
    25  
    26  	selectors := make(map[string][]string)
    27  	for key, values := range selectorsMap {
    28  		valuesList, ok := values.([]interface{})
    29  		if !ok {
    30  			return nil, fmt.Errorf("unexpected application hide selector values definition for key %s, should be a list, but was %T", key, values)
    31  		}
    32  		var v []string
    33  		for _, value := range valuesList {
    34  			valueString, ok := value.(string)
    35  			if !ok {
    36  				return nil, fmt.Errorf("unexpected application hide selector value definition for key %s, should be a string, but was %T", key, value)
    37  			}
    38  			v = append(v, valueString)
    39  		}
    40  		selectors[key] = v
    41  	}
    42  
    43  	return selectors, nil
    44  }