...
1
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
24
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