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