Skip to content

Commit c10160a

Browse files
authored
Merge pull request #107 from yjinjo/master
Add alias command and modify code for grpc and rest
2 parents d93128c + 409cc7c commit c10160a

File tree

12 files changed

+846
-1099
lines changed

12 files changed

+846
-1099
lines changed

cmd/commands/api_resources.go

+7-46
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ import (
1111
"strings"
1212

1313
"github.com/cloudforet-io/cfctl/pkg/configs"
14+
"github.com/cloudforet-io/cfctl/pkg/format"
15+
"github.com/cloudforet-io/cfctl/pkg/transport"
1416
"github.com/jhump/protoreflect/grpcreflect"
15-
"github.com/pterm/pterm"
1617
"github.com/spf13/cobra"
1718
"github.com/spf13/viper"
1819
"google.golang.org/grpc"
@@ -28,18 +29,19 @@ func FetchApiResourcesCmd(serviceName string) *cobra.Command {
2829
Use: "api_resources",
2930
Short: fmt.Sprintf("Displays supported API resources for the %s service", serviceName),
3031
RunE: func(cmd *cobra.Command, args []string) error {
31-
return listAPIResources(serviceName)
32+
return ListAPIResources(serviceName)
3233
},
3334
}
3435
}
3536

36-
func listAPIResources(serviceName string) error {
37+
func ListAPIResources(serviceName string) error {
3738
setting, err := configs.LoadSetting()
3839
if err != nil {
3940
return fmt.Errorf("failed to load setting: %v", err)
4041
}
4142

42-
endpoint, err := getServiceEndpoint(setting, serviceName)
43+
//endpoint, err := getServiceEndpoint(setting, serviceName)
44+
endpoint, err := transport.GetServiceEndpoint(setting, serviceName)
4345
if err != nil {
4446
return fmt.Errorf("failed to get endpoint for service %s: %v", serviceName, err)
4547
}
@@ -58,39 +60,11 @@ func listAPIResources(serviceName string) error {
5860
return data[i][0] < data[j][0]
5961
})
6062

61-
renderAPITable(data)
63+
format.RenderTable(data)
6264

6365
return nil
6466
}
6567

66-
func getServiceEndpoint(config *configs.Setting, serviceName string) (string, error) {
67-
envConfig := config.Environments[config.Environment]
68-
if envConfig.URL == "" {
69-
return "", fmt.Errorf("URL not found in environment config")
70-
}
71-
72-
// Parse URL to get environment
73-
urlParts := strings.Split(envConfig.URL, ".")
74-
if len(urlParts) < 4 {
75-
return "", fmt.Errorf("invalid URL format: %s", envConfig.URL)
76-
}
77-
78-
var envPrefix string
79-
for i, part := range urlParts {
80-
if part == "console" && i+1 < len(urlParts) {
81-
envPrefix = urlParts[i+1] // Get the part after "console" (dev or stg)
82-
break
83-
}
84-
}
85-
86-
if envPrefix == "" {
87-
return "", fmt.Errorf("environment prefix not found in URL: %s", envConfig.URL)
88-
}
89-
90-
endpoint := fmt.Sprintf("grpc+ssl://%s.api.%s.spaceone.dev:443", serviceName, envPrefix)
91-
return endpoint, nil
92-
}
93-
9468
func loadShortNames() (map[string]string, error) {
9569
home, err := os.UserHomeDir()
9670
if err != nil {
@@ -237,16 +211,3 @@ func fetchServiceResources(serviceName, endpoint string, shortNamesMap map[strin
237211

238212
return data, nil
239213
}
240-
241-
func renderAPITable(data [][]string) {
242-
// Create table header
243-
table := pterm.TableData{
244-
{"Service", "Verb", "Resource", "Short Names"},
245-
}
246-
247-
// Add data rows
248-
table = append(table, data...)
249-
250-
// Render the table
251-
pterm.DefaultTable.WithHasHeader().WithData(table).Render()
252-
}

0 commit comments

Comments
 (0)