From 63bd84106515c021e30b8a9b5491cc4c2404d594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Tarbouriech?= Date: Tue, 11 Jul 2023 02:06:20 +0200 Subject: [PATCH] feat(projects): add delete command --- cmd/delete.go | 28 +++++++++++++++++++++++++++- pkg/project/project.go | 15 ++++----------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/cmd/delete.go b/cmd/delete.go index 357fda3..b2ba8aa 100644 --- a/cmd/delete.go +++ b/cmd/delete.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "github.com/paastech-cloud/cli/internal/config" + "github.com/paastech-cloud/cli/pkg/project" "github.com/paastech-cloud/cli/pkg/utils" "github.com/spf13/cobra" ) @@ -16,10 +18,34 @@ var deleteCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { fmt.Println("Deleting this project from PaasTech") + userCfg, err := config.LoadAuthConfig() + if err != nil { + return err + } + + projCfg, err := config.LoadProjectConfig() + if err != nil { + return err + } + // confirmation stdin := bufio.NewReader(os.Stdin) if utils.ConfirmationPrompt(stdin) { - // return project.DeleteProject(viper.GetString("server"), viper.GetString("jwt"), "todo") + var project project.Project + projCfg.UnmarshalKey("project", &project) + + err := project.Delete(userCfg.GetString("server"), userCfg.GetString("jwt")) + if err != nil { + return err + } + + os.Remove("paastech.yaml") + if err != nil { + return err + } + + fmt.Println("Project deleted successfully") + return nil } return nil diff --git a/pkg/project/project.go b/pkg/project/project.go index 3bad50a..5178e99 100644 --- a/pkg/project/project.go +++ b/pkg/project/project.go @@ -18,10 +18,10 @@ type projectCreationResponse struct { } type Project struct { - Id string `json:"id"` - Name string `json:"name"` - CreatedAt time.Time `json:"createdAt"` - UpdatedAt time.Time `json:"updatedAt"` + Id string `json:"id" yaml:"id"` + Name string `json:"name" yaml:"name"` + CreatedAt time.Time `json:"createdAt" yaml:"createdat"` + UpdatedAt time.Time `json:"updatedAt" yaml:"updatedat"` } // Send a project creation request to the PaaSTech API and returns a Project object if successful @@ -91,12 +91,5 @@ func (p *Project) Delete(baseURL string, accessToken string) error { return err } - // Parse JSON body - var project Project - err = json.NewDecoder(resp.Body).Decode(&project) - if err != nil { - return err - } - return nil }