Files
influx-cli/clients/org/client.go
Sam Arnold 9747d05ae1 refactor: expose generated code and client business logic to share with Kapacitor (#103)
* 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
2021-05-25 10:05:01 -04:00

54 lines
915 B
Go

package org
import (
"github.com/influxdata/influx-cli/v2/api"
"github.com/influxdata/influx-cli/v2/clients"
)
type Client struct {
clients.CLI
api.OrganizationsApi
api.UsersApi
}
type printOrgOpts struct {
org *api.Organization
orgs []api.Organization
deleted bool
}
func (c Client) printOrgs(opts printOrgOpts) error {
if c.PrintAsJSON {
var v interface{}
if opts.org != nil {
v = opts.org
} else {
v = opts.orgs
}
return c.PrintJSON(v)
}
headers := []string{"ID", "Name"}
if opts.deleted {
headers = append(headers, "Deleted")
}
if opts.org != nil {
opts.orgs = append(opts.orgs, *opts.org)
}
var rows []map[string]interface{}
for _, o := range opts.orgs {
row := map[string]interface{}{
"ID": o.GetId(),
"Name": o.GetName(),
}
if opts.deleted {
row["Deleted"] = true
}
rows = append(rows, row)
}
return c.PrintTable(headers, rows...)
}