func()

in controllers/sonar/chain/update_settings.go [88:120]


func (h *UpdateSettings) makeSetting(
	ctx context.Context,
	setting sonarApi.SonarSetting,
	namespace string,
) (url.Values, error) {
	if setting.FieldValues != nil {
		// nolint:errchkjson //we can skip error for marshal map[string]string
		fv, _ := json.Marshal(setting.FieldValues)

		return url.Values{
			"key":         []string{setting.Key},
			"fieldValues": []string{string(fv)},
		}, nil
	}

	if setting.Values != nil {
		return url.Values{
			"key":    []string{setting.Key},
			"values": setting.Values,
		}, nil
	}

	if setting.ValueRef != nil {
		val, err := sourceref.GetValueFromSourceRef(ctx, setting.ValueRef, namespace, h.k8sClient)
		if err != nil {
			return url.Values{}, fmt.Errorf("failed to get sonar setting from source ref: %w", err)
		}

		return newSettingValue(setting.Key, val), nil
	}

	return newSettingValue(setting.Key, setting.Value), nil
}