11package main
22
33import (
4+ "encoding/json"
45 "fmt"
56 "net/url"
67 "sort"
@@ -11,12 +12,24 @@ import (
1112 "github.com/spf13/cobra"
1213)
1314
15+ type userFiles struct {
16+ Cloud map [string ]interface {} `json:"cloud"`
17+ Public map [string ]interface {} `json:"public"`
18+ }
19+
20+ type releasesResponse struct {
21+ Version string `json:"version"`
22+ Description string `json:"description"`
23+ Timestamp string `json:"timestamp"`
24+ UserFiles string `json:"userFiles"`
25+ }
26+
1427type releasesCmd struct {
1528 version string
1629}
1730
1831func (r * releasesCmd ) printFileNames (
19- fileVersions map [string ]string ,
32+ fileVersions map [string ]interface {} ,
2033 e * env ) {
2134 var files []string
2235 for name := range fileVersions {
@@ -26,32 +39,37 @@ func (r *releasesCmd) printFileNames(
2639 fmt .Fprintln (e .Out , strings .Join (files , "\n " ))
2740}
2841
29- func (r * releasesCmd ) printFiles (
30- version string ,
31- releases []deployInfo ,
42+ func (r * releasesCmd ) printFiles (version string ,
43+ releases []releasesResponse ,
3244 e * env ) error {
33- var files deployFileData
45+ var files string
3446 for _ , release := range releases {
35- if release .ParseVersion == version {
36- files = release .Versions
47+ if release .Version == version {
48+ files = release .UserFiles
3749 break
3850 }
3951 }
40- if len ( files . Cloud ) == 0 && len ( files . Public ) == 0 {
52+ if files == "" {
4153 return stackerr .Newf (`Unable to fetch files for release version: %s
4254Note that you can list files for all releases shown in "parse releases"` ,
4355 version )
4456 }
45- if len (files .Cloud ) != 0 {
57+ var versionFileNames userFiles
58+ if err := json .NewDecoder (
59+ strings .NewReader (files ),
60+ ).Decode (& versionFileNames ); err != nil {
61+ return stackerr .Wrap (err )
62+ }
63+ if len (versionFileNames .Cloud ) != 0 {
4664 fmt .Fprintf (e .Out , "Deployed cloud code files:\n " )
47- r .printFileNames (files .Cloud , e )
65+ r .printFileNames (versionFileNames .Cloud , e )
4866 }
49- if len (files .Cloud ) != 0 && len (files .Public ) != 0 {
67+ if len (versionFileNames .Cloud ) != 0 && len (versionFileNames .Public ) != 0 {
5068 fmt .Fprintln (e .Out )
5169 }
52- if len (files .Public ) != 0 {
70+ if len (versionFileNames .Public ) != 0 {
5371 fmt .Fprintf (e .Out , "Deployed public hosting files:\n " )
54- r .printFileNames (files .Public , e )
72+ r .printFileNames (versionFileNames .Public , e )
5573 }
5674 return nil
5775}
@@ -60,7 +78,7 @@ func (r *releasesCmd) run(e *env, c *context) error {
6078 u := & url.URL {
6179 Path : "releases" ,
6280 }
63- var releasesList []deployInfo
81+ var releasesList []releasesResponse
6482 if _ , err := e .ParseAPIClient .Get (u , & releasesList ); err != nil {
6583 return stackerr .Wrap (err )
6684 }
@@ -77,7 +95,7 @@ func (r *releasesCmd) run(e *env, c *context) error {
7795 if release .Description != "" {
7896 description = release .Description
7997 }
80- fmt .Fprintf (w , "%s\t %s\t %s\n " , release .ParseVersion , description , release .Timestamp )
98+ fmt .Fprintf (w , "%s\t %s\t %s\n " , release .Version , description , release .Timestamp )
8199 }
82100 w .Flush ()
83101 return nil
0 commit comments