func unmarshalGetEsConnector()

in datahub/connector.go [659:715]


func unmarshalGetEsConnector(commonResp *CommonResponseResult, data []byte) (*GetConnectorResult, error) {
	type SinkEsConfigHelper struct {
		SinkEsConfig
		IDFields     string `json:"IDFields"`
		TypeFields   string `json:"TypeFields"`
		RouterFields string `json:"RouterFields"`
		ProxyMode    string `json:"ProxyMode"`
	}

	ct := &struct {
		GetConnectorResult
		Config SinkEsConfigHelper `json:"Config"`
	}{}

	if err := json.Unmarshal(data, ct); err != nil {
		return nil, err
	}

	conf := ct.Config.SinkEsConfig
	if ct.Config.ProxyMode != "" {
		proxy, err := strconv.ParseBool(ct.Config.ProxyMode)
		if err != nil {
			return nil, err
		}
		conf.ProxyMode = proxy
	}

	idFields := make([]string, 0)
	if ct.Config.IDFields != "" {
		if err := json.Unmarshal([]byte(ct.Config.IDFields), &idFields); err != nil {
			return nil, err
		}
	}
	conf.IDFields = idFields

	typeFields := make([]string, 0)
	if ct.Config.TypeFields != "" {
		if err := json.Unmarshal([]byte(ct.Config.TypeFields), &typeFields); err != nil {
			return nil, err
		}
		conf.TypeFields = typeFields
	}
	conf.TypeFields = typeFields

	routerFields := make([]string, 0)
	if ct.Config.RouterFields != "" {
		if err := json.Unmarshal([]byte(ct.Config.RouterFields), &routerFields); err != nil {
			return nil, err
		}
	}
	conf.RouterFields = routerFields

	ret := &ct.GetConnectorResult
	ret.CommonResponseResult = *commonResp
	ret.Config = conf
	return ret, nil
}