package api import ( "fmt" "net/http" ) const ( URLRequestListVHost = "/v1/vhosts" URLRequestListApp = "/v1/vhosts/%s/apps" URLRequestListStream = "/v1/vhosts/%s/apps/%s/streams" ) type ResponseList struct { Message string `json:"message"` StatusCode int `json:"statusCode"` Data []string `json:"response,omitempty"` } // RequestListVHosts to get list of vhosts func (c *Client) RequestListVHosts() (*ResponseList, error) { req := ResponseList{} url := fmt.Sprintf(URLRequestListVHost) if err := c.Request(http.MethodGet, url, nil, &req); err != nil { return nil, err } return &req, nil } // RequestListApps to get list of apps on given vhost func (c *Client) RequestListApps(vhost string) (*ResponseList, error) { req := ResponseList{} url := fmt.Sprintf(URLRequestListApp, vhost) if err := c.Request(http.MethodGet, url, nil, &req); err != nil { return nil, err } return &req, nil } // RequestDefaultListApps to get list of apps on default vhost func (c *Client) RequestDefaultListApps() (*ResponseList, error) { return c.RequestListApps(c.DefaultVHost) } // RequestDefaultListStreams to get list of streams on given vhost and app func (c *Client) RequestListStreams(vhost, app string) (*ResponseList, error) { req := ResponseList{} url := fmt.Sprintf(URLRequestListStream, vhost, app) if err := c.Request(http.MethodGet, url, nil, &req); err != nil { return nil, err } return &req, nil } // RequestDefaultListStreams to get list of streams on default vhost and app func (c *Client) RequestDefaultListStreams() (*ResponseList, error) { return c.RequestListStreams(c.DefaultVHost, c.DefaultApp) }