46 lines
912 B
Go
46 lines
912 B
Go
package clients
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/influxdata/influx-cli/v2/api"
|
|
"github.com/influxdata/influx-cli/v2/config"
|
|
)
|
|
|
|
type OrgParams struct {
|
|
OrgID string
|
|
OrgName string
|
|
}
|
|
|
|
func (p OrgParams) GetOrgID(ctx context.Context, activeConfig config.Config, orgApi api.OrganizationsApi) (string, error) {
|
|
if p.OrgID != "" {
|
|
return p.OrgID, nil
|
|
}
|
|
orgName := p.OrgName
|
|
if orgName == "" {
|
|
orgName = activeConfig.Org
|
|
}
|
|
if orgName == "" {
|
|
return "", ErrMustSpecifyOrg
|
|
}
|
|
res, err := orgApi.GetOrgs(ctx).Org(orgName).Execute()
|
|
if err != nil {
|
|
return "", fmt.Errorf("failed to lookup org with name %q: %w", orgName, err)
|
|
}
|
|
if len(res.GetOrgs()) == 0 {
|
|
return "", fmt.Errorf("no organization with name %q", orgName)
|
|
}
|
|
return res.GetOrgs()[0].GetId(), nil
|
|
}
|
|
|
|
type BucketParams struct {
|
|
BucketID string
|
|
BucketName string
|
|
}
|
|
|
|
type OrgBucketParams struct {
|
|
OrgParams
|
|
BucketParams
|
|
}
|