Commit Diff


commit - 60c115fb1c7683cea9553380eddaeb0033dd17bf
commit + 6d1ce85e966615f3886d8a2431b3e859d3008db6
blob - 3707d01283233e4cd393c9b40e7c60481a44f64a
blob + c1f083d5684fb65b0b47c15e9cd22f27e66ae76c
--- http.go
+++ http.go
@@ -29,23 +29,16 @@ func NewRequest(method, url, username, password string
 	return req, nil
 }
 
-func (c *Client) get(path string) (*http.Response, error) {
-	url := "https://" + c.addr + versionPrefix + path
-	req, err := NewRequest(http.MethodGet, url, c.username, c.password, nil)
-	if err != nil {
-		return nil, err
-	}
-	return c.Do(req)
-}
-
-func (c *Client) getFilter(path, filter string) (*http.Response, error) {
+func (c *Client) get(path, filter string) (*http.Response, error) {
 	u, err := url.Parse("https://" + c.addr + versionPrefix + path)
 	if err != nil {
 		return nil, err
 	}
-	v := url.Values{}
-	v.Set("filter", filter)
-	u.RawQuery = v.Encode()
+	if filter != "" {
+		v := url.Values{}
+		v.Set("filter", filter)
+		u.RawQuery = v.Encode()	
+	}
 	req, err := NewRequest(http.MethodGet, u.String(), c.username, c.password, nil)
 	if err != nil {
 		return nil, err
blob - 48e63b7551f4a6a4cc152c7f1718598485dade49
blob + 3e46109beb4e68f5866bb6e6edfe76e495207a58
--- icinga.go
+++ icinga.go
@@ -57,7 +57,7 @@ func Dial(addr, username, password string, client *htt
 }
 
 func (c *Client) Permissions() (response, error) {
-	resp, err := c.get("")
+	resp, err := c.get("", "")
 	if err != nil {
 		return response{}, err
 	}
blob - 9d5a0c2381a0143335a58d3df926952fba06f30b
blob + 43a5c780fceabdefc8a7482d3f3f92244511a925
--- object.go
+++ object.go
@@ -36,20 +36,15 @@ func (c *Client) lookupObject(objpath string) (object,
 }
 
 func (c *Client) filterObjects(objpath, expr string) ([]object, error) {
-	var resp *http.Response
-	var err error
-	if expr == "" {
-		resp, err = c.get(objpath)
-	} else {
-		resp, err = c.getFilter(objpath, expr)
-		if resp.StatusCode == http.StatusNotFound {
-			return nil, ErrNoMatch
-		}
-	}
+	resp, err := c.get(objpath, expr)
 	if err != nil {
 		return nil, err
 	}
 	defer resp.Body.Close()
+	if expr != "" && resp.StatusCode == http.StatusNotFound {
+		return nil, ErrNoMatch
+		
+	}
 	iresp, err := parseResponse(resp.Body)
 	if err != nil {
 		return nil, fmt.Errorf("parse response: %v", err)