|
|
@@ -121,8 +121,8 @@ func (m *httpMembersAPI) Remove(memberID string) error {
|
|
|
type membersAPIActionList struct{}
|
|
|
|
|
|
func (l *membersAPIActionList) httpRequest(ep url.URL) *http.Request {
|
|
|
- ep.Path = path.Join(ep.Path, DefaultV2MembersPrefix)
|
|
|
- req, _ := http.NewRequest("GET", ep.String(), nil)
|
|
|
+ u := v2MembersURL(ep)
|
|
|
+ req, _ := http.NewRequest("GET", u.String(), nil)
|
|
|
return req
|
|
|
}
|
|
|
|
|
|
@@ -131,8 +131,9 @@ type membersAPIActionRemove struct {
|
|
|
}
|
|
|
|
|
|
func (d *membersAPIActionRemove) httpRequest(ep url.URL) *http.Request {
|
|
|
- ep.Path = path.Join(ep.Path, DefaultV2MembersPrefix, d.memberID)
|
|
|
- req, _ := http.NewRequest("DELETE", ep.String(), nil)
|
|
|
+ u := v2MembersURL(ep)
|
|
|
+ u.Path = path.Join(u.Path, d.memberID)
|
|
|
+ req, _ := http.NewRequest("DELETE", u.String(), nil)
|
|
|
return req
|
|
|
}
|
|
|
|
|
|
@@ -141,10 +142,10 @@ type membersAPIActionAdd struct {
|
|
|
}
|
|
|
|
|
|
func (a *membersAPIActionAdd) httpRequest(ep url.URL) *http.Request {
|
|
|
- ep.Path = path.Join(ep.Path, DefaultV2MembersPrefix)
|
|
|
+ u := v2MembersURL(ep)
|
|
|
m := httptypes.MemberCreateRequest{PeerURLs: a.peerURLs}
|
|
|
b, _ := json.Marshal(&m)
|
|
|
- req, _ := http.NewRequest("POST", ep.String(), bytes.NewReader(b))
|
|
|
+ req, _ := http.NewRequest("POST", u.String(), bytes.NewReader(b))
|
|
|
req.Header.Set("Content-Type", "application/json")
|
|
|
return req
|
|
|
}
|
|
|
@@ -155,3 +156,10 @@ func assertStatusCode(want, got int) (err error) {
|
|
|
}
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+// v2MembersURL add the necessary path to the provided endpoint
|
|
|
+// to route requests to the default v2 members API.
|
|
|
+func v2MembersURL(ep url.URL) *url.URL {
|
|
|
+ ep.Path = path.Join(ep.Path, DefaultV2MembersPrefix)
|
|
|
+ return &ep
|
|
|
+}
|