-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathsaved_objects_600.go
49 lines (37 loc) · 1.23 KB
/
saved_objects_600.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package kibana
import (
"encoding/json"
"errors"
"fmt"
goversion "github.com/mcuadros/go-version"
)
type savedObjectsClient600 struct {
config *Config
client *HttpAgent
version string
}
func (api *savedObjectsClient600) GetByType(request *SavedObjectRequest) (*SavedObjectResponse, error) {
address, err := addQueryString(api.getSavedObjectsPath(), request)
if err != nil {
return nil, fmt.Errorf("could not build query string for get saved objects by type, error: %v", err)
}
apiResponse, body, errs := api.client.Get(address).End()
if errs != nil {
return nil, fmt.Errorf("could not get saved objects, error: %v", errs)
}
if apiResponse.StatusCode >= 300 {
return nil, errors.New(fmt.Sprintf("Status: %d, %s", apiResponse.StatusCode, body))
}
response := &SavedObjectResponse{}
err = json.Unmarshal([]byte(body), response)
if err != nil {
return nil, fmt.Errorf("could not parse saved objects response, error: %v, response body: %s", err, body)
}
return response, nil
}
func (api *savedObjectsClient600) getSavedObjectsPath() string {
if goversion.Compare(api.config.KibanaVersion, "6.3.0", ">=") {
return api.config.KibanaBaseUri + savedObjectsPath + "_find"
}
return api.config.KibanaBaseUri + savedObjectsPath
}