package proxy import ( "os" "forge.cadoles.com/cadoles/bouncer/internal/client" "forge.cadoles.com/cadoles/bouncer/internal/command/client/apierr" clientFlag "forge.cadoles.com/cadoles/bouncer/internal/command/client/flag" proxyFlag "forge.cadoles.com/cadoles/bouncer/internal/command/client/proxy/flag" "forge.cadoles.com/cadoles/bouncer/internal/format" "forge.cadoles.com/cadoles/bouncer/internal/store" "github.com/pkg/errors" "github.com/urfave/cli/v2" ) func DeleteCommand() *cli.Command { return &cli.Command{ Name: "delete", Usage: "Delete proxy", Flags: proxyFlag.WithProxyFlags(), Action: func(ctx *cli.Context) error { baseFlags := clientFlag.GetBaseFlags(ctx) token, err := clientFlag.GetToken(baseFlags) if err != nil { return errors.WithStack(apierr.Wrap(err)) } proxyName, err := proxyFlag.AssertProxyName(ctx) if err != nil { return errors.WithStack(err) } client := client.New(baseFlags.ServerURL, client.WithToken(token)) proxyName, err = client.DeleteProxy(ctx.Context, proxyName) if err != nil { return errors.WithStack(apierr.Wrap(err)) } hints := format.Hints{ OutputMode: baseFlags.OutputMode, } if err := format.Write(baseFlags.Format, os.Stdout, hints, struct { Name store.ProxyName `json:"id"` }{ Name: proxyName, }); err != nil { return errors.WithStack(err) } return nil }, } }