summaryrefslogtreecommitdiffstats
path: root/cmd/admin.go
diff options
context:
space:
mode:
authorsinner <[email protected]>2026-04-08 13:47:51 -0400
committersinner <[email protected]>2026-04-08 13:47:51 -0400
commit6c8beb133073ebb3b6d8bb16e852b29dbc23f133 (patch)
tree1410c127c20ae9ec304221af9ad685fe35935fee /cmd/admin.go
parent850cc065469d2efaefc7947dcb7a6b79e9da1858 (diff)
downloaddborg-6c8beb133073ebb3b6d8bb16e852b29dbc23f133.tar.gz
dborg-6c8beb133073ebb3b6d8bb16e852b29dbc23f133.zip
feat: add admin edit command for updating account properties
Diffstat (limited to 'cmd/admin.go')
-rw-r--r--cmd/admin.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/cmd/admin.go b/cmd/admin.go
index 5ef98ca..d4ab1e9 100644
--- a/cmd/admin.go
+++ b/cmd/admin.go
@@ -63,6 +63,13 @@ var adminStatsCmd = &cobra.Command{
RunE: runAdminStats,
}
+var adminEditCmd = &cobra.Command{
+ Use: "edit [api_key]",
+ Short: "Edit account properties",
+ Args: cobra.ExactArgs(1),
+ RunE: runAdminEdit,
+}
+
func init() {
rootCmd.AddCommand(adminCmd)
adminCmd.AddCommand(adminListCmd)
@@ -72,11 +79,21 @@ func init() {
adminCmd.AddCommand(adminSetCreditsCmd)
adminCmd.AddCommand(adminDisableCmd)
adminCmd.AddCommand(adminStatsCmd)
+ adminCmd.AddCommand(adminEditCmd)
adminCreateCmd.Flags().IntP("credits", "c", 0, "Initial credits")
adminCreateCmd.Flags().BoolP("unlimited", "u", false, "Unlimited credits")
adminCreateCmd.Flags().BoolP("premium", "p", false, "Premium account (enables skiptrace access)")
adminDisableCmd.Flags().BoolP("enable", "e", false, "Enable account instead of disable")
+
+ adminEditCmd.Flags().StringP("name", "n", "", "Update account name")
+ adminEditCmd.Flags().IntP("credits", "c", -1, "Set credits amount")
+ adminEditCmd.Flags().BoolP("unlimited", "u", false, "Set unlimited credits")
+ adminEditCmd.Flags().BoolP("no-unlimited", "", false, "Remove unlimited credits")
+ adminEditCmd.Flags().BoolP("premium", "p", false, "Set premium account")
+ adminEditCmd.Flags().BoolP("no-premium", "", false, "Remove premium account")
+ adminEditCmd.Flags().BoolP("disable", "d", false, "Disable account")
+ adminEditCmd.Flags().BoolP("enable", "e", false, "Enable account")
}
func getAdminClient(cmd *cobra.Command) (*client.Client, error) {
@@ -272,3 +289,75 @@ func runAdminStats(cmd *cobra.Command, args []string) error {
printOutput(output)
return nil
}
+
+func runAdminEdit(cmd *cobra.Command, args []string) error {
+ c, err := getAdminClient(cmd)
+ if err != nil {
+ return err
+ }
+
+ req := &models.AccountUpdateRequest{}
+
+ name, _ := cmd.Flags().GetString("name")
+ if name != "" {
+ req.Name = &name
+ }
+
+ credits, _ := cmd.Flags().GetInt("credits")
+ if credits >= 0 {
+ req.Credits = &credits
+ }
+
+ unlimited, _ := cmd.Flags().GetBool("unlimited")
+ if unlimited {
+ req.Unlimited = &unlimited
+ }
+
+ noUnlimited, _ := cmd.Flags().GetBool("no-unlimited")
+ if noUnlimited {
+ req.Unlimited = &noUnlimited
+ }
+
+ premium, _ := cmd.Flags().GetBool("premium")
+ if premium {
+ req.IsPremium = &premium
+ }
+
+ noPremium, _ := cmd.Flags().GetBool("no-premium")
+ if noPremium {
+ req.IsPremium = &noPremium
+ }
+
+ disable, _ := cmd.Flags().GetBool("disable")
+ if disable {
+ req.Disabled = &disable
+ }
+
+ enable, _ := cmd.Flags().GetBool("enable")
+ if enable {
+ falseVal := false
+ req.Disabled = &falseVal
+ }
+
+ if req.Name == nil && req.Credits == nil && req.Unlimited == nil &&
+ req.IsPremium == nil && req.Disabled == nil {
+ return fmt.Errorf("no changes specified — use --name, --credits, --unlimited, --no-unlimited, --premium, --no-premium, --disable, or --enable")
+ }
+
+ response, err := c.UpdateAccount(args[0], req)
+ if err != nil {
+ return err
+ }
+
+ if err := checkError(response.Error); err != nil {
+ return err
+ }
+
+ output, err := formatter.FormatAccountUpdated(response.Account, response.Message, IsJSONOutput())
+ if err != nil {
+ return err
+ }
+
+ printOutput(output)
+ return nil
+}