diff --git a/cli/packages/api/api.go b/cli/packages/api/api.go index d9278d08c..2342f32e7 100644 --- a/cli/packages/api/api.go +++ b/cli/packages/api/api.go @@ -273,11 +273,11 @@ func CallGetFoldersV1(httpClient *resty.Client, request GetFoldersV1Request) (Ge response, err := httpRequest.Get(fmt.Sprintf("%v/v1/folders", config.INFISICAL_URL)) if err != nil { - return GetFoldersV1Response{}, fmt.Errorf("CallGetFoldersV1: Unable to complete api request [err=%s]", err) + return GetFoldersV1Response{}, fmt.Errorf("CallGetFoldersV1: Unable to complete api request [err=%v]", err) } if response.IsError() { - return GetFoldersV1Response{}, fmt.Errorf("CallGetFoldersV1: Unsuccessful response. Please make sure your secret path, workspace and environment name are all correct [response=%s]", response) + return GetFoldersV1Response{}, fmt.Errorf("CallGetFoldersV1: Unsuccessful [response=%s]", response) } return foldersResponse, nil @@ -297,7 +297,7 @@ func CallCreateFolderV1(httpClient *resty.Client, request CreateFolderV1Request) } if response.IsError() { - return CreateFolderV1Response{}, fmt.Errorf("CallCreateFolderV1: Unsuccessful response. Please make sure your secret path, workspace and environment name are all correct [response=%s]", response) + return CreateFolderV1Response{}, fmt.Errorf("CallCreateFolderV1: Unsuccessful [response=%s]", response.String()) } return folderResponse, nil @@ -306,23 +306,11 @@ func CallCreateFolderV1(httpClient *resty.Client, request CreateFolderV1Request) func CallDeleteFolderV1(httpClient *resty.Client, request DeleteFolderV1Request) (DeleteFolderV1Response, error) { var folderResponse DeleteFolderV1Response - type deleteFolderRequest struct { - WorkspaceId string `json:"workspaceId"` - Environment string `json:"environment"` - Directory string `json:"folderPath"` - } - - body := deleteFolderRequest{ - WorkspaceId: request.WorkspaceId, - Environment: request.Environment, - Directory: request.Directory, - } - httpRequest := httpClient. R(). SetResult(&folderResponse). SetHeader("User-Agent", USER_AGENT). - SetBody(body) + SetBody(request) response, err := httpRequest.Delete(fmt.Sprintf("%v/v1/folders/%v", config.INFISICAL_URL, request.FolderName)) if err != nil { @@ -330,7 +318,7 @@ func CallDeleteFolderV1(httpClient *resty.Client, request DeleteFolderV1Request) } if response.IsError() { - return DeleteFolderV1Response{}, fmt.Errorf("CallDeleteFolderV1: Unsuccessful response. Please make sure your secret path, workspace and environment name are all correct [response=%s]", response) + return DeleteFolderV1Response{}, fmt.Errorf("CallDeleteFolderV1: Unsuccessful [response=%s]", response.String()) } return folderResponse, nil diff --git a/cli/packages/cmd/folder.go b/cli/packages/cmd/folder.go index f38259fbc..b59be0266 100644 --- a/cli/packages/cmd/folder.go +++ b/cli/packages/cmd/folder.go @@ -51,7 +51,7 @@ var getCmd = &cobra.Command{ util.HandleError(err, "Unable to get folders") } - visualize.PrintAllFoldersDetails(folders) + visualize.PrintAllFoldersDetails(folders, foldersPath) Telemetry.CaptureEvent("cli-command:folders get", posthog.NewProperties().Set("folderCount", len(folders)).Set("version", util.CLI_VERSION)) }, } @@ -98,13 +98,13 @@ var createCmd = &cobra.Command{ FolderPath: folderPath, } - folder, err := util.CreateFolder(params) + _, err = util.CreateFolder(params) if err != nil { util.HandleError(err, "Unable to create folder") } - folders := []models.SingleFolder{folder} - visualize.PrintAllFoldersDetails(folders) + util.PrintSuccessMessage(fmt.Sprintf("folder named `%s` created in path %s", folderName, folderPath)) + Telemetry.CaptureEvent("cli-command:folders create", posthog.NewProperties().Set("version", util.CLI_VERSION)) }, } @@ -152,35 +152,36 @@ var deleteCmd = &cobra.Command{ FolderPath: folderPath, } - folders, err := util.DeleteFolder(params) + _, err = util.DeleteFolder(params) if err != nil { util.HandleError(err, "Unable to delete folder") } - visualize.PrintAllFoldersDetails(folders) + util.PrintSuccessMessage(fmt.Sprintf("folder named `%s` deleted in path %s", folderName, folderPath)) + Telemetry.CaptureEvent("cli-command:folders delete", posthog.NewProperties().Set("version", util.CLI_VERSION)) }, } -func init() { +// func init() { - folderCmd.PersistentFlags().String("env", "dev", "Used to select the environment name on which actions should be taken on") +// folderCmd.PersistentFlags().String("env", "dev", "Used to select the environment name on which actions should be taken on") - // Add getCmd, createCmd and deleteCmd flags here - getCmd.Flags().StringP("path", "p", "/", "Path to the directory whose folders will be fetched") - getCmd.Flags().StringP("token", "t", "", "Fetch folders using the infisical token") - folderCmd.AddCommand(getCmd) +// // Add getCmd, createCmd and deleteCmd flags here +// getCmd.Flags().StringP("path", "p", "/", "The path from where folders should be fetched from") +// getCmd.Flags().StringP("token", "t", "", "Fetch folders using the infisical token") +// folderCmd.AddCommand(getCmd) - // Add createCmd flags here - createCmd.Flags().StringP("path", "p", "/", "Path to the directory where the folder will be created") - createCmd.Flags().StringP("name", "n", "", "Name of the folder to be created") - folderCmd.AddCommand(createCmd) +// // Add createCmd flags here +// createCmd.Flags().StringP("path", "p", "/", "Path to where the folder should be created") +// createCmd.Flags().StringP("name", "n", "", "Name of the folder to be created") +// folderCmd.AddCommand(createCmd) - // Add deleteCmd flags here - deleteCmd.Flags().StringP("path", "p", "/", "Path to the directory where the folder will be deleted") - deleteCmd.Flags().StringP("name", "n", "", "Name of the folder to be deleted") - folderCmd.AddCommand(deleteCmd) +// // Add deleteCmd flags here +// deleteCmd.Flags().StringP("path", "p", "/", "Path to the folder to be deleted") +// deleteCmd.Flags().StringP("name", "n", "", "Name of the folder to be deleted") +// folderCmd.AddCommand(deleteCmd) - rootCmd.AddCommand(folderCmd) +// rootCmd.AddCommand(folderCmd) -} +// } diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 5c4d314f5..186776837 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -679,6 +679,28 @@ func init() { util.RequireLocalWorkspaceFile() } + // *** Folders sub command *** + folderCmd.PersistentFlags().String("env", "dev", "Used to select the environment name on which actions should be taken on") + + // Add getCmd, createCmd and deleteCmd flags here + getCmd.Flags().StringP("path", "p", "/", "The path from where folders should be fetched from") + getCmd.Flags().String("token", "", "Fetch folders using the infisical token") + folderCmd.AddCommand(getCmd) + + // Add createCmd flags here + createCmd.Flags().StringP("path", "p", "/", "Path to where the folder should be created") + createCmd.Flags().StringP("name", "n", "", "Name of the folder to be created") + folderCmd.AddCommand(createCmd) + + // Add deleteCmd flags here + deleteCmd.Flags().StringP("path", "p", "/", "Path to the folder to be deleted") + deleteCmd.Flags().StringP("name", "n", "", "Name of the folder to be deleted") + folderCmd.AddCommand(deleteCmd) + + secretsCmd.AddCommand(folderCmd) + + // ** End of folders sub command + secretsCmd.Flags().String("token", "", "Fetch secrets using the Infisical Token") secretsCmd.PersistentFlags().String("env", "dev", "Used to select the environment name on which actions should be taken on") secretsCmd.Flags().Bool("expand", true, "Parse shell parameter expansions in your secrets") diff --git a/cli/packages/util/folders.go b/cli/packages/util/folders.go index d11b6d983..7275653d9 100644 --- a/cli/packages/util/folders.go +++ b/cli/packages/util/folders.go @@ -191,6 +191,7 @@ func DeleteFolder(params models.DeleteFolderParameters) ([]models.SingleFolder, WorkspaceId: params.WorkspaceId, Environment: params.Environment, FolderName: params.FolderName, + Directory: params.FolderPath, } apiResponse, err := api.CallDeleteFolderV1(httpClient, deleteFolderRequest) diff --git a/cli/packages/visualize/folders.go b/cli/packages/visualize/folders.go index 9c23763c1..74f053c4f 100644 --- a/cli/packages/visualize/folders.go +++ b/cli/packages/visualize/folders.go @@ -2,13 +2,13 @@ package visualize import "github.com/Infisical/infisical-merge/packages/models" -func PrintAllFoldersDetails(folders []models.SingleFolder) { +func PrintAllFoldersDetails(folders []models.SingleFolder, path string) { rows := [][3]string{} for _, folder := range folders { - rows = append(rows, [...]string{folder.ID, folder.Name, ""}) + rows = append(rows, [...]string{folder.Name, path, folder.ID}) } - headers := [...]string{"FOLDER ID", "FOLDER NAME", "VERSION"} + headers := [...]string{"FOLDER NAME", "PATH", "FOLDER ID"} Table(headers, rows) }