From 16df81ac9401f69c4a7b4b7bb9b6941788772412 Mon Sep 17 00:00:00 2001 From: khmarbaise Date: Mon, 7 Dec 2020 20:24:04 +0800 Subject: [PATCH] Add organization delete command (#270) Added organization delete command. Fix #269 Signed-off-by: Karl Heinz Marbaise Supplemental check for response. Co-authored-by: Karl Heinz Marbaise Reviewed-on: https://gitea.com/gitea/tea/pulls/270 Reviewed-by: Norwin Reviewed-by: 6543 <6543@obermui.de> Co-Authored-By: khmarbaise Co-Committed-By: khmarbaise --- cmd/organizations.go | 1 + cmd/organizations/delete.go | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 cmd/organizations/delete.go diff --git a/cmd/organizations.go b/cmd/organizations.go index 0b7a8b6..fa51376 100644 --- a/cmd/organizations.go +++ b/cmd/organizations.go @@ -22,6 +22,7 @@ var CmdOrgs = cli.Command{ Action: runOrganizations, Subcommands: []*cli.Command{ &organizations.CmdOrganizationList, + &organizations.CmdOrganizationDelete, }, } diff --git a/cmd/organizations/delete.go b/cmd/organizations/delete.go new file mode 100644 index 0000000..998298e --- /dev/null +++ b/cmd/organizations/delete.go @@ -0,0 +1,44 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package organizations + +import ( + "log" + + "code.gitea.io/tea/cmd/flags" + "code.gitea.io/tea/modules/config" + "github.com/urfave/cli/v2" +) + +// CmdOrganizationDelete represents a sub command of organizations to delete a given user organization +var CmdOrganizationDelete = cli.Command{ + Name: "delete", + Aliases: []string{"rm"}, + Usage: "Delete users Organizations", + Description: "Delete users organizations", + ArgsUsage: "", + Action: RunOrganizationDelete, +} + +// RunOrganizationDelete delete user organization +func RunOrganizationDelete(ctx *cli.Context) error { + //TODO: Reconsider the usage InitCommandLoginOnly related to #200 + login := config.InitCommandLoginOnly(flags.GlobalLoginValue) + + client := login.Client() + + if ctx.Args().Len() < 1 { + log.Fatal("You have to specify the organization name you want to delete.") + return nil + } + + response, err := client.DeleteOrg(ctx.Args().First()) + if response != nil && response.StatusCode == 404 { + log.Fatal("The given organization does not exist.") + return nil + } + + return err +}