...

Source file src/edge-infra.dev/pkg/edge/edgeadmin/commands/operatorintervention/add/privilege.go

Documentation: edge-infra.dev/pkg/edge/edgeadmin/commands/operatorintervention/add

     1  //nolint:dupl
     2  package add
     3  
     4  import (
     5  	"fmt"
     6  
     7  	"edge-infra.dev/pkg/edge/api/graph/model"
     8  	"edge-infra.dev/pkg/edge/edgecli/flagutil"
     9  	"edge-infra.dev/pkg/lib/cli/rags"
    10  )
    11  
    12  type PrivilegeMutation struct {
    13  	CreateOperatorInterventionPrivileges struct {
    14  		model.CreateOperatorInterventionPrivilegeResponse
    15  	} `graphql:"createOperatorInterventionPrivileges(privileges: $privileges)"`
    16  }
    17  
    18  func (mut PrivilegeMutation) Errors() []*model.OperatorInterventionErrorResponse {
    19  	return mut.CreateOperatorInterventionPrivileges.Errors
    20  }
    21  
    22  type Privilege struct {
    23  	// Privileges to be added to the db.
    24  	// Initialized during the cli pkg's flag parse method.
    25  	privileges []string
    26  }
    27  
    28  func (priv *Privilege) ShortUsageString() string {
    29  	return "edgeadmin operatorintervention add privilege [--privilege <privilege>]"
    30  }
    31  
    32  func (priv *Privilege) ShortHelpString() string {
    33  	return "Add new privileges to the database"
    34  }
    35  
    36  func (priv *Privilege) LongHelpString() string {
    37  	return fmt.Sprintf(longHelpSingleFlagFormatString, "privilege")
    38  }
    39  
    40  func (priv *Privilege) Flags() []*rags.Rag {
    41  	return []*rags.Rag{
    42  		{
    43  			Name:  flagutil.OIPrivilege,
    44  			Usage: "privilege to be added",
    45  			Value: &rags.StringSet{
    46  				Var: &priv.privileges,
    47  			},
    48  			Required: true,
    49  		},
    50  	}
    51  }
    52  
    53  func (priv *Privilege) Variables() map[string]interface{} {
    54  	var input []model.OperatorInterventionPrivilegeInput
    55  	for _, privilege := range priv.privileges {
    56  		input = append(input, model.OperatorInterventionPrivilegeInput{
    57  			Name: privilege,
    58  		})
    59  	}
    60  	return map[string]interface{}{
    61  		"privileges": input,
    62  	}
    63  }
    64  
    65  func (priv *Privilege) Mutation() OperatorInterventionMutation {
    66  	return &PrivilegeMutation{}
    67  }
    68  
    69  func (priv *Privilege) ResponseType() string {
    70  	output := "Privilege"
    71  	if len(priv.privileges) > 1 {
    72  		output += "s"
    73  	}
    74  	return output
    75  }
    76  

View as plain text