in libs/go-kibana-rest/kbapi/api.kibana_save_object.go [104:181]
func newKibanaSavedObjectFindFunc(c *resty.Client) KibanaSavedObjectFind {
return func(objectType string, kibanaSpace string, optionalParameters *OptionalFindParameters) (map[string]interface{}, error) {
if objectType == "" {
return nil, NewAPIError(600, "You must provide the object type")
}
log.Debug("ObjectType: ", objectType)
log.Debug("KibanaSpace : ", kibanaSpace)
queryParams := map[string]string{
"type": objectType,
}
if optionalParameters != nil {
log.Debug("Objects Per Page: ", optionalParameters.ObjectsPerPage)
log.Debug("Page: ", optionalParameters.Page)
log.Debug("Search: ", optionalParameters.Search)
log.Debug("DefaultSearchOperator: ", optionalParameters.DefaultSearchOperator)
log.Debug("SearchFields: ", optionalParameters.SearchFields)
log.Debug("Fields: ", optionalParameters.Fields)
log.Debug("SortField: ", optionalParameters.SortField)
log.Debug("HasReference: ", optionalParameters.HasReference)
if optionalParameters.ObjectsPerPage != 0 {
queryParams["per_page"] = strconv.Itoa(optionalParameters.ObjectsPerPage)
}
if optionalParameters.Page != 0 {
queryParams["page"] = strconv.Itoa(optionalParameters.Page)
}
if optionalParameters.Search != "" {
queryParams["search"] = optionalParameters.Search
}
if optionalParameters.DefaultSearchOperator != "" {
queryParams["default_search_operator"] = optionalParameters.DefaultSearchOperator
}
if optionalParameters.SearchFields != nil {
queryParams["search_fields"] = strings.Join(optionalParameters.SearchFields, ",")
}
if optionalParameters.Fields != nil {
queryParams["fields"] = strings.Join(optionalParameters.Fields, ",")
}
if optionalParameters.SortField != "" {
queryParams["sort_field"] = optionalParameters.SortField
}
if optionalParameters.HasReference != "" {
queryParams["has_reference"] = optionalParameters.HasReference
}
}
var path string
if kibanaSpace == "" || kibanaSpace == "default" {
path = fmt.Sprintf("%s/_find", basePathKibanaSavedObject)
} else {
path = fmt.Sprintf("/s/%s%s/_find", kibanaSpace, basePathKibanaSavedObject)
}
log.Debugf("URL to find object: %s", path)
resp, err := c.R().SetQueryParams(queryParams).Get(path)
if err != nil {
return nil, err
}
log.Debug("Response: ", resp)
if resp.StatusCode() >= 300 {
if resp.StatusCode() == 404 {
return nil, nil
}
return nil, NewAPIError(resp.StatusCode(), resp.Status())
}
var data map[string]interface{}
err = json.Unmarshal(resp.Body(), &data)
if err != nil {
return nil, err
}
log.Debug("Data: ", data)
return data, nil
}
}