Files
influx-cli/cmd/influx/org_members.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

135 lines
3.3 KiB
Go

package main
import (
"github.com/influxdata/influx-cli/v2/clients/org"
"github.com/influxdata/influx-cli/v2/pkg/cli/middleware"
"github.com/urfave/cli/v2"
)
func newOrgMembersCmd() *cli.Command {
return &cli.Command{
Name: "members",
Usage: "Organization membership commands",
Subcommands: []*cli.Command{
newOrgMembersAddCmd(),
newOrgMembersListCmd(),
newOrgMembersRemoveCmd(),
},
}
}
func newOrgMembersAddCmd() *cli.Command {
var params org.AddMemberParams
return &cli.Command{
Name: "add",
Usage: "Add organization member",
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
Flags: append(
commonFlagsNoPrint(),
&cli.GenericFlag{
Name: "member",
Usage: "The member ID",
Aliases: []string{"m"},
Required: true,
Value: &params.MemberId,
},
&cli.StringFlag{
Name: "name",
Usage: "The organization name",
Aliases: []string{"n"},
EnvVars: []string{"INFLUX_ORG"},
Destination: &params.OrgName,
},
&cli.GenericFlag{
Name: "id",
Usage: "The organization ID",
Aliases: []string{"i"},
EnvVars: []string{"INFLUX_ORG_ID"},
Value: &params.OrgID,
},
),
Action: func(ctx *cli.Context) error {
client := org.Client{
CLI: getCLI(ctx),
OrganizationsApi: getAPI(ctx).OrganizationsApi,
}
return client.AddMember(ctx.Context, &params)
},
}
}
func newOrgMembersListCmd() *cli.Command {
var params org.ListMemberParams
return &cli.Command{
Name: "list",
Aliases: []string{"find", "ls"},
Usage: "List organization members",
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
Flags: append(
commonFlags(),
&cli.StringFlag{
Name: "name",
Usage: "The organization name",
Aliases: []string{"n"},
EnvVars: []string{"INFLUX_ORG"},
Destination: &params.OrgName,
},
&cli.GenericFlag{
Name: "id",
Usage: "The organization ID",
Aliases: []string{"i"},
EnvVars: []string{"INFLUX_ORG_ID"},
Value: &params.OrgID,
},
),
Action: func(ctx *cli.Context) error {
client := org.Client{
CLI: getCLI(ctx),
OrganizationsApi: getAPI(ctx).OrganizationsApi,
UsersApi: getAPI(ctx).UsersApi,
}
return client.ListMembers(ctx.Context, &params)
},
}
}
func newOrgMembersRemoveCmd() *cli.Command {
var params org.RemoveMemberParams
return &cli.Command{
Name: "remove",
Usage: "Remove organization member",
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
Flags: append(
commonFlagsNoPrint(),
&cli.GenericFlag{
Name: "member",
Usage: "The member ID",
Aliases: []string{"m"},
Required: true,
Value: &params.MemberId,
},
&cli.StringFlag{
Name: "name",
Usage: "The organization name",
Aliases: []string{"n"},
EnvVars: []string{"INFLUX_ORG"},
Destination: &params.OrgName,
},
&cli.GenericFlag{
Name: "id",
Usage: "The organization ID",
Aliases: []string{"i"},
EnvVars: []string{"INFLUX_ORG_ID"},
Value: &params.OrgID,
},
),
Action: func(ctx *cli.Context) error {
client := org.Client{
CLI: getCLI(ctx),
OrganizationsApi: getAPI(ctx).OrganizationsApi,
}
return client.RemoveMember(ctx.Context, &params)
},
}
}