@@ -12,7 +12,7 @@ import (
12
12
)
13
13
14
14
var apiCmd = & cobra.Command {
15
- Use : "api verb path" ,
15
+ Use : "api [ verb] path" ,
16
16
Short : "Send an API call to slack" ,
17
17
Long : "Send an API call to slack" ,
18
18
RunE : func (cmd * cobra.Command , args []string ) error {
@@ -26,13 +26,6 @@ var apiCmd = &cobra.Command{
26
26
return err
27
27
}
28
28
29
- if len (args ) != 2 {
30
- return fmt .Errorf ("Expected 2 arguments: verb and path, see help" )
31
- }
32
-
33
- verb := strings .ToUpper (args [0 ])
34
- path := args [1 ]
35
-
36
29
fields , err := cmd .Flags ().GetStringArray ("field" )
37
30
if err != nil {
38
31
return err
@@ -53,6 +46,21 @@ var apiCmd = &cobra.Command{
53
46
return err
54
47
}
55
48
49
+ var verb , path string
50
+ if len (args ) == 2 {
51
+ verb = strings .ToUpper (args [0 ])
52
+ path = args [1 ]
53
+ } else if len (args ) == 1 {
54
+ path = args [0 ]
55
+ if body == "" {
56
+ verb = "GET"
57
+ } else {
58
+ verb = "POST"
59
+ }
60
+ } else {
61
+ return fmt .Errorf ("Expected 1 or 2 arguments: verb and/or path, see help" )
62
+ }
63
+
56
64
response , err := client .API (verb , path , mappedFields , body )
57
65
if err != nil {
58
66
return err
@@ -70,7 +78,7 @@ var body string
70
78
71
79
func init () {
72
80
apiCmd .Flags ().StringArrayVarP (& fields , "field" , "f" , nil , "Fields to pass to the api call" )
73
- apiCmd .Flags ().StringVarP (& body , "body" , "b" , "{} " , "Body to send as JSON" )
81
+ apiCmd .Flags ().StringVarP (& body , "body" , "b" , "" , "Body to send as JSON" )
74
82
apiCmd .Flags ().StringP ("team" , "t" , "" , "Slack team name (required here or in config)" )
75
83
apiCmd .SetHelpTemplate (apiCmdUsage )
76
84
apiCmd .SetUsageTemplate (apiCmdUsage )
@@ -99,7 +107,12 @@ Aliases:
99
107
{{.NameAndAliases}}{{end}}{{if .HasExample}}
100
108
101
109
Examples:
102
- {{.Example}}{{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}}
110
+ {{.Example}}
111
+
112
+ The verb is optional:
113
+ - If no body is sent, GET will be used.
114
+ - If a body is sent, POST will be used.
115
+ {{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}}
103
116
104
117
Available Commands:{{range $cmds}}{{if (or .IsAvailableCommand (eq .Name "help"))}}
105
118
{{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{else}}{{range $group := .Groups}}
0 commit comments