Skip to content

Commit 1e23f86

Browse files
author
Mathieu Grzybek
committed
[catalog] add 'id' filter
1 parent d4a6522 commit 1e23f86

File tree

1 file changed

+74
-52
lines changed

1 file changed

+74
-52
lines changed

cmd/catalog.go

Lines changed: 74 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -17,68 +17,90 @@ package cmd
1717

1818
import (
1919
"encoding/json"
20-
"fmt"
2120

2221
"github.com/spf13/cobra"
2322
"onyxiactl/utils"
2423
)
2524

25+
type Catalog struct {
26+
ID string `json:"id"`
27+
Description string `json:"description"`
28+
LastUpdateTime uint `json:"lastUpdateTime"`
29+
Location string `json:"location"`
30+
Maintainer string `json:"maintainer"`
31+
Name string `json:"name"`
32+
Status string `json:"status"`
33+
Type string `json:"type"`
34+
}
35+
36+
type Catalogs struct {
37+
Catalogs []Catalog `json:"catalogs"`
38+
}
39+
40+
func init() {
41+
rootCmd.AddCommand(catalogCmd)
42+
catalogCmd.AddCommand(catalogListCmd)
43+
catalogCmd.PersistentFlags().StringP("id", "i", "", "Catalog’s ID.")
44+
}
45+
2646
var catalogCmd = &cobra.Command{
2747
Use: "catalog",
28-
Short: "List the available catalogs.",
48+
Short: "Manage the catalogs.",
49+
Long: `Manage the catalogs. By default the command lists the available catalogs.`,
50+
Run: func(cmd *cobra.Command, args []string) { catalogList(cmd) },
51+
}
52+
53+
var catalogListCmd = &cobra.Command{
54+
Use: "list",
55+
Short: "List the available catalogs (default).",
2956
Long: `List the available catalogs.`,
30-
Run: func(cmd *cobra.Command, args []string) {
31-
catalog := &CatalogResponse{}
32-
token, _ := cmd.Flags().GetString("token")
33-
onyxiaURL, _ := cmd.Flags().GetString("onyxiaURL")
34-
35-
JsonCatalog, e := utils.CallAPIGet(onyxiaURL+"/public/catalog", token)
36-
if e != nil {
37-
panic(e)
38-
}
39-
40-
e = json.Unmarshal(JsonCatalog, &catalog)
41-
if e != nil {
42-
panic(e)
43-
}
44-
45-
for _, value := range catalog.Catalogs {
46-
j, _ := json.Marshal(value)
47-
fmt.Println(string(j))
48-
}
49-
},
57+
Run: func(cmd *cobra.Command, args []string) { catalogList(cmd) },
5058
}
5159

52-
func init() {
53-
rootCmd.AddCommand(catalogCmd)
60+
func catalogList(cmd *cobra.Command) error {
61+
token, _ := cmd.Flags().GetString("token")
62+
onyxiaURL, _ := cmd.Flags().GetString("onyxiaURL")
63+
id, _ := cmd.Flags().GetString("id")
64+
65+
if len(id) == 0 {
66+
return catalogListAll(onyxiaURL+"/public/catalog", token)
67+
}
68+
69+
return catalogListId(onyxiaURL+"/public/catalog", token, id)
5470
}
5571

56-
type CatalogResponse struct {
57-
Catalogs []struct {
58-
/* Catalog struct {
59-
Packages []struct {
60-
APIVersion string `json:"apiVersion"`
61-
AppVersion string `json:"appVersion"`
62-
Config struct{} `json:"config"`
63-
Created string `json:"created"`
64-
Description string `json:"description"`
65-
Digest string `json:"digest"`
66-
Home string `json:"home"`
67-
Icon string `json:"icon"`
68-
Name string `json:"name"`
69-
Sources []string `json:"sources"`
70-
Urls []string `json:"urls"`
71-
Version string `json:"version"`
72-
} `json:"packages"`
73-
} `json:"catalog"`
74-
*/
75-
ID string `json:"id"`
76-
Description string `json:"description"`
77-
// LastUpdateTime uint `json:"lastUpdateTime"`
78-
Location string `json:"location"`
79-
Maintainer string `json:"maintainer"`
80-
Name string `json:"name"`
81-
Status string `json:"status"`
82-
Type string `json:"type"`
83-
} `json:"catalogs"`
72+
func catalogListAll(url, token string) error {
73+
catalog := &Catalogs{}
74+
JsonCatalog, e := utils.CallAPIGet(url, token)
75+
if e != nil {
76+
panic(e)
77+
}
78+
79+
e = json.Unmarshal(JsonCatalog, &catalog)
80+
if e != nil {
81+
panic(e)
82+
}
83+
84+
for _, v := range catalog.Catalogs {
85+
utils.PrintStruct(v)
86+
}
87+
88+
return nil
89+
}
90+
91+
func catalogListId(url, token, id string) error {
92+
catalog := &Catalog{}
93+
JsonCatalog, e := utils.CallAPIGet(url+"/"+id, token)
94+
if e != nil {
95+
panic(e)
96+
}
97+
98+
e = json.Unmarshal(JsonCatalog, &catalog)
99+
if e != nil {
100+
panic(e)
101+
}
102+
103+
utils.PrintStruct(catalog)
104+
105+
return nil
84106
}

0 commit comments

Comments
 (0)