Files
sailpoint-cli/cmd/workflow/get.go
2023-08-17 14:45:19 -05:00

62 lines
1.3 KiB
Go

// Copyright (c) 2023, SailPoint Technologies, Inc. All rights reserved.
package workflow
import (
"context"
_ "embed"
"github.com/sailpoint-oss/golang-sdk/beta"
"github.com/sailpoint-oss/sailpoint-cli/internal/config"
"github.com/sailpoint-oss/sailpoint-cli/internal/sdk"
"github.com/sailpoint-oss/sailpoint-cli/internal/util"
"github.com/spf13/cobra"
"golang.org/x/exp/slices"
)
//go:embed get.md
var getHelp string
func newGetCommand() *cobra.Command {
help := util.ParseHelp(getHelp)
cmd := &cobra.Command{
Use: "get",
Short: "Get Workflows in IdentityNow",
Long: help.Long,
Example: help.Example,
Aliases: []string{"g"},
RunE: func(cmd *cobra.Command, args []string) error {
apiClient, err := config.InitAPIClient()
if err != nil {
return err
}
workflows, resp, sdkErr := apiClient.Beta.WorkflowsApi.ListWorkflows(context.TODO()).Execute()
if sdkErr != nil {
err := sdk.HandleSDKError(resp, sdkErr)
if err != nil {
return err
}
}
if len(args) > 0 {
var filteredList []beta.Workflow
for _, workflow := range workflows {
if slices.Contains(args, *workflow.Id) {
filteredList = append(filteredList, workflow)
}
}
workflows = filteredList
}
cmd.Println(util.PrettyPrint(workflows))
return nil
},
}
return cmd
}