config_client.go raw

   1  package storm
   2  
   3  import liquidweb "github.com/liquidweb/liquidweb-go"
   4  
   5  // ConfigBackend is the interface for storm configs.
   6  type ConfigBackend interface {
   7  	Details(string) (*Config, error)
   8  	List(ConfigListParams) (*ConfigList, error)
   9  }
  10  
  11  // ConfigClient is the API client for storm configs.
  12  type ConfigClient struct {
  13  	Backend liquidweb.Backend
  14  }
  15  
  16  // Details fetches the details for a storm config.
  17  func (c *ConfigClient) Details(id string) (*Config, error) {
  18  	var config Config
  19  	params := ConfigParams{ID: id}
  20  
  21  	err := c.Backend.CallIntoInterface("v1/Storm/Config/details", params, config)
  22  	if err != nil {
  23  		return nil, err
  24  	}
  25  
  26  	return &config, nil
  27  }
  28  
  29  // List fetches a list of storm configs.
  30  func (c *ConfigClient) List(params ConfigListParams) (*ConfigList, error) {
  31  	var configList ConfigList
  32  
  33  	err := c.Backend.CallIntoInterface("v1/Storm/Config/list", params, configList)
  34  	if err != nil {
  35  		return nil, err
  36  	}
  37  
  38  	return &configList, nil
  39  }
  40