github.com/wtfutil/wtf@v0.43.0/modules/newrelic/client/browser_applications.go (about)

     1  package newrelic
     2  
     3  // BrowserApplicationsFilter is the filtering component of
     4  // BrowserApplicationsOptions
     5  type BrowserApplicationsFilter struct {
     6  	Name string
     7  	IDs  []int
     8  }
     9  
    10  // BrowserApplicationsOptions provides a filtering mechanism for
    11  // GetBrowserApplications.
    12  type BrowserApplicationsOptions struct {
    13  	Filter BrowserApplicationsFilter
    14  	Page   int
    15  }
    16  
    17  // BrowserApplication describes a New Relic Browser Application.
    18  type BrowserApplication struct {
    19  	ID                   int    `json:"id,omitempty"`
    20  	Name                 string `json:"name,omitempty"`
    21  	BrowserMonitoringKey string `json:"browser_monitoring_key,omitempty"`
    22  	LoaderScript         string `json:"loader_script,omitempty"`
    23  }
    24  
    25  // GetBrowserApplications will return a slice of New Relic Browser
    26  // Applications, optionally filtered by BrowserApplicationsOptions.
    27  func (c *Client) GetBrowserApplications(opt *BrowserApplicationsOptions) ([]BrowserApplication, error) {
    28  	resp := &struct {
    29  		BrowserApplications []BrowserApplication `json:"browser_applications,omitempty"`
    30  	}{}
    31  	path := "browser_applications.json"
    32  	err := c.doGet(path, opt, resp)
    33  	if err != nil {
    34  		return nil, err
    35  	}
    36  	return resp.BrowserApplications, nil
    37  }
    38  
    39  func (o *BrowserApplicationsOptions) String() string {
    40  	if o == nil {
    41  		return ""
    42  	}
    43  	return encodeGetParams(map[string]interface{}{
    44  		"filter[name]": o.Filter.Name,
    45  		"filter[ids]":  o.Filter.IDs,
    46  		"page":         o.Page,
    47  	})
    48  }