package workspace

import (
	"fmt"

	"github.com/spf13/cobra"

	"github.com/tidbcloud/aisupport/apps/cli/ticket-manager/common"
	wsapi "github.com/tidbcloud/aisupport/packages/sdk-go/contracts/api/ticket-manager/workspace"
)

func newGetCommand() *cobra.Command {
	cmd := &cobra.Command{
		Use:   "get <workspace-id>",
		Short: "Get a workspace",
		Args:  cobra.ExactArgs(1),
		RunE: func(cmd *cobra.Command, args []string) error {
			workspaceID := args[0]

			var result wsapi.GetWorkspaceResponse
			_, err := common.Client.R().
				SetResult(&result).
				SetPathParam("id", workspaceID).
				Get("/workspace/workspaces/{id}")
			if err != nil {
				return fmt.Errorf("get workspace %s: %w", workspaceID, err)
			}

			return common.Printer.PrintObject(result.Workspace)
		},
	}

	return cmd
}
