4
4
"encoding/json"
5
5
"fmt"
6
6
"net/http"
7
+ "os"
8
+ "text/tabwriter"
7
9
8
10
"github.com/spf13/pflag"
9
11
@@ -14,7 +16,9 @@ import (
14
16
type urlCmd struct {}
15
17
16
18
type DevURL struct {
17
- Url string `json:"url"`
19
+ URL string `json:"url"`
20
+ Port string `json:"port"`
21
+ Access string `json:"access"`
18
22
}
19
23
20
24
func (cmd urlCmd ) Spec () cli.CommandSpec {
@@ -26,34 +30,44 @@ func (cmd urlCmd) Spec() cli.CommandSpec {
26
30
}
27
31
28
32
func (cmd urlCmd ) Run (fl * pflag.FlagSet ) {
29
- var (
30
- envName = fl .Arg (0 )
31
- port = fl .Arg (1 )
32
- )
33
- if envName == "" || port == "" {
33
+ var envName = fl .Arg (0 )
34
+
35
+ if envName == "" {
34
36
exitUsage (fl )
35
37
}
36
38
37
39
entClient := requireAuth ()
38
40
39
41
env := findEnv (entClient , envName )
40
42
41
- reqString := "%s/api/environments/%s/devurl?port=%s& session_token=%s"
42
- reqUrl := fmt .Sprintf (reqString , entClient .BaseURL , env .ID , port , entClient .Token )
43
+ reqString := "%s/api/environments/%s/devurls? session_token=%s"
44
+ reqUrl := fmt .Sprintf (reqString , entClient .BaseURL , env .ID , entClient .Token )
43
45
44
46
resp , err := http .Get (reqUrl )
45
47
if err != nil {
46
48
flog .Fatal ("%v" , err )
47
49
}
48
50
defer resp .Body .Close ()
49
51
52
+ if resp .StatusCode != 200 {
53
+ flog .Fatal ("non-success status code: %d" , resp .StatusCode )
54
+ }
55
+
50
56
dec := json .NewDecoder (resp .Body )
51
57
52
- var devUrl DevURL
53
- err = dec .Decode (& devUrl )
58
+ var devURLs = make ([] DevURL , 0 )
59
+ err = dec .Decode (& devURLs )
54
60
if err != nil {
55
61
flog .Fatal ("%v" , err )
56
62
}
57
63
58
- fmt .Println (devUrl .Url )
64
+ if len (devURLs ) == 0 {
65
+ fmt .Printf ("no dev urls were found for environment: %s\n " , envName )
66
+ }
67
+
68
+ w := tabwriter .NewWriter (os .Stdout , 0 , 0 , 1 , ' ' , tabwriter .TabIndent )
69
+ for _ , devURL := range devURLs {
70
+ fmt .Fprintf (w , "%s\t %s\t %s\n " , devURL .URL , devURL .Port , devURL .Access )
71
+ }
72
+ w .Flush ()
59
73
}
0 commit comments