diff --git a/cmd/network.go b/cmd/network.go index ff306c1..602fe0a 100644 --- a/cmd/network.go +++ b/cmd/network.go @@ -228,17 +228,9 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str config.Debug("NewAPIRequest API request URL:", requestURL) var response *http.Response - if params.Has("password") || params.Has("userdata") { - requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL) - response, err = r.Client().PostForm(requestURL, params) - if err != nil { - return nil, err - } - } else { - response, err = r.Client().Get(requestURL) - if err != nil { - return nil, err - } + response,err = executeRequest(r, requestURL, params) + if (err != nil) { + return nil, err } config.Debug("NewAPIRequest response status code:", response.StatusCode) @@ -253,17 +245,9 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str requestURL = fmt.Sprintf("%s?%s", r.Config.ActiveProfile.URL, encodeRequestParams(params)) config.Debug("NewAPIRequest API request URL:", requestURL) - if params.Has("password") || params.Has("userdata") { - requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL) - response, err = r.Client().PostForm(requestURL, params) - if err != nil { - return nil, err - } - } else { - response, err = r.Client().Get(requestURL) - if err != nil { - return nil, err - } + response,err = executeRequest(r, requestURL, params) + if (err != nil) { + return nil, err } } @@ -289,3 +273,13 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str return nil, errors.New("failed to decode response") } + +// we can implement further conditions to do POST or GET (or other http commands) here +func executeRequest(r *Request, requestURL string, params url.Values) (*http.Response, error){ + if params.Has("password") || params.Has("userdata") { + requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL) + return r.Client().PostForm(requestURL, params) + } else { + return r.Client().Get(requestURL) + } +}