cmd

package
v0.0.0-...-bf255b0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2023 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FlagKey = struct {
	Method string
	Data   string
	Token  string
}{
	Method: "method",
	Data:   "data",
	Token:  "token",
}
View Source
var RootCmd = &cobra.Command{
	Use:   "haze <url>",
	Short: "Haze can call Cognito-backed endpoints using JWT",
	Args: func(cmd *cobra.Command, args []string) error {
		version, err := cmd.Flags().GetBool("version")
		if err != nil {
			return errors.Wrap(err, "Error getting version")
		}

		if version {
			return nil
		}

		if err := cobra.ExactArgs(1)(cmd, args); err != nil {
			return errors.New("No URL specified")
		}

		if _, err := url.ParseRequestURI(args[0]); err != nil {
			return errors.Wrap(err, "Invalid URL")
		}

		return nil
	},
	PreRun: func(cmd *cobra.Command, args []string) {
		viper.BindPFlag(FlagKey.Method, cmd.Flags().Lookup(FlagKey.Method))
		viper.BindPFlag(FlagKey.Data, cmd.Flags().Lookup(FlagKey.Data))
		viper.BindPFlag(FlagKey.Token, cmd.Flags().Lookup(FlagKey.Token))
	},
	Run: func(cmd *cobra.Command, args []string) {
		version, err := cmd.Flags().GetBool("version")
		if err != nil {
			return
		}

		if version {
			fmt.Println(update.CmdVersion)
			os.Exit(0)
		}

		var method string
		if viper.GetString(FlagKey.Method) == "" {
			method = http.MethodGet
		} else {
			method = viper.GetString(FlagKey.Method)
		}

		token := getTokenFromAllOptions()

		response := request.MakeRequest(&request.Request{
			Method: method,
			Url:    args[0],
			Token:  token,
			Data:   viper.GetString(FlagKey.Data),
		})

		defer response.Body.Close()

		body, err := io.ReadAll(response.Body)
		if err != nil {
			fmt.Fprintln(os.Stderr, err.Error())
		}

		fmt.Printf("%+v\n", string(body))
	},
}

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL