func()

in pkg/dp/apisix/upstream.go [27:48]


func (upstream *Upstream) Add() (*UpstreamResponse, error) {
	baseUrl := conf.BaseUrl
	url := fmt.Sprintf("%s/upstreams", baseUrl)
	if b, err := json.Marshal(upstream); err != nil {
		return nil, err
	} else {
		if res, err := utils.Post(url, b); err != nil {
			return nil, fmt.Errorf("http post failed, url: %s, err: %+v", url, err)
		} else {
			var uRes UpstreamResponse
			if err = json.Unmarshal(res, &uRes); err != nil {
				return nil, err
			} else {
				if uRes.Upstream.Key != nil {
					return &uRes, nil
				} else {
					return nil, fmt.Errorf("apisix upstream not expected response")
				}
			}
		}
	}
}