//nolint:dupl package add import ( "fmt" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/edgecli/flagutil" "edge-infra.dev/pkg/lib/cli/rags" ) type PrivilegeMutation struct { CreateOperatorInterventionPrivileges struct { model.CreateOperatorInterventionPrivilegeResponse } `graphql:"createOperatorInterventionPrivileges(privileges: $privileges)"` } func (mut PrivilegeMutation) Errors() []*model.OperatorInterventionErrorResponse { return mut.CreateOperatorInterventionPrivileges.Errors } type Privilege struct { // Privileges to be added to the db. // Initialized during the cli pkg's flag parse method. privileges []string } func (priv *Privilege) ShortUsageString() string { return "edgeadmin operatorintervention add privilege [--privilege ]" } func (priv *Privilege) ShortHelpString() string { return "Add new privileges to the database" } func (priv *Privilege) LongHelpString() string { return fmt.Sprintf(longHelpSingleFlagFormatString, "privilege") } func (priv *Privilege) Flags() []*rags.Rag { return []*rags.Rag{ { Name: flagutil.OIPrivilege, Usage: "privilege to be added", Value: &rags.StringSet{ Var: &priv.privileges, }, Required: true, }, } } func (priv *Privilege) Variables() map[string]interface{} { var input []model.OperatorInterventionPrivilegeInput for _, privilege := range priv.privileges { input = append(input, model.OperatorInterventionPrivilegeInput{ Name: privilege, }) } return map[string]interface{}{ "privileges": input, } } func (priv *Privilege) Mutation() OperatorInterventionMutation { return &PrivilegeMutation{} } func (priv *Privilege) ResponseType() string { output := "Privilege" if len(priv.privileges) > 1 { output += "s" } return output }