
* refactor: take clients out of internal * refactor: move stdio to pkg * Move internal/api to api * refactor: final changes for Kapacitor to access shared functionality * chore: regenerate mocks * fix: bad automated refactor * chore: extra formatting not caught by make fmt
50 lines
980 B
Go
50 lines
980 B
Go
package bucket
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/influxdata/influx-cli/v2/clients"
|
|
)
|
|
|
|
type BucketsListParams struct {
|
|
OrgID string
|
|
OrgName string
|
|
Name string
|
|
ID string
|
|
}
|
|
|
|
func (c Client) List(ctx context.Context, params *BucketsListParams) error {
|
|
if params.OrgID == "" && params.OrgName == "" && c.ActiveConfig.Org == "" {
|
|
return clients.ErrMustSpecifyOrg
|
|
}
|
|
|
|
req := c.GetBuckets(ctx)
|
|
if params.OrgID != "" {
|
|
req = req.OrgID(params.OrgID)
|
|
}
|
|
if params.OrgName != "" {
|
|
req = req.Org(params.OrgName)
|
|
}
|
|
if params.OrgID == "" && params.OrgName == "" {
|
|
req = req.Org(c.ActiveConfig.Org)
|
|
}
|
|
if params.Name != "" {
|
|
req = req.Name(params.Name)
|
|
}
|
|
if params.ID != "" {
|
|
req = req.Id(params.ID)
|
|
}
|
|
|
|
buckets, err := req.Execute()
|
|
if err != nil {
|
|
return fmt.Errorf("failed to list buckets: %w", err)
|
|
}
|
|
|
|
printOpts := bucketPrintOptions{}
|
|
if buckets.Buckets != nil {
|
|
printOpts.buckets = *buckets.Buckets
|
|
}
|
|
return c.printBuckets(printOpts)
|
|
}
|