2022-03-07 20:49:02 +08:00

180 lines
4.3 KiB
Go

// Code generated by goa v3.6.0, DO NOT EDIT.
//
// host HTTP client CLI support package
//
// Command:
// $ goa gen goa_example/design
package cli
import (
"flag"
"fmt"
service1c "goa_example/gen/http/service1/client"
"net/http"
"os"
goahttp "goa.design/goa/v3/http"
goa "goa.design/goa/v3/pkg"
)
// UsageCommands returns the set of commands and sub-commands using the format
//
// command (subcommand1|subcommand2|...)
//
func UsageCommands() string {
return `service1 (signin|secure)
`
}
// UsageExamples produces an example of a valid invocation of the CLI tool.
func UsageExamples() string {
return os.Args[0] + ` service1 signin --username "user" --password "password"` + "\n" +
""
}
// ParseEndpoint returns the endpoint and payload as specified on the command
// line.
func ParseEndpoint(
scheme, host string,
doer goahttp.Doer,
enc func(*http.Request) goahttp.Encoder,
dec func(*http.Response) goahttp.Decoder,
restore bool,
) (goa.Endpoint, interface{}, error) {
var (
service1Flags = flag.NewFlagSet("service1", flag.ContinueOnError)
service1SigninFlags = flag.NewFlagSet("signin", flag.ExitOnError)
service1SigninUsernameFlag = service1SigninFlags.String("username", "REQUIRED", "Username used to perform signin")
service1SigninPasswordFlag = service1SigninFlags.String("password", "REQUIRED", "Password used to perform signin")
service1SecureFlags = flag.NewFlagSet("secure", flag.ExitOnError)
service1SecureBodyFlag = service1SecureFlags.String("body", "REQUIRED", "")
service1SecureTokenFlag = service1SecureFlags.String("token", "REQUIRED", "")
)
service1Flags.Usage = service1Usage
service1SigninFlags.Usage = service1SigninUsage
service1SecureFlags.Usage = service1SecureUsage
if err := flag.CommandLine.Parse(os.Args[1:]); err != nil {
return nil, nil, err
}
if flag.NArg() < 2 { // two non flag args are required: SERVICE and ENDPOINT (aka COMMAND)
return nil, nil, fmt.Errorf("not enough arguments")
}
var (
svcn string
svcf *flag.FlagSet
)
{
svcn = flag.Arg(0)
switch svcn {
case "service1":
svcf = service1Flags
default:
return nil, nil, fmt.Errorf("unknown service %q", svcn)
}
}
if err := svcf.Parse(flag.Args()[1:]); err != nil {
return nil, nil, err
}
var (
epn string
epf *flag.FlagSet
)
{
epn = svcf.Arg(0)
switch svcn {
case "service1":
switch epn {
case "signin":
epf = service1SigninFlags
case "secure":
epf = service1SecureFlags
}
}
}
if epf == nil {
return nil, nil, fmt.Errorf("unknown %q endpoint %q", svcn, epn)
}
// Parse endpoint flags if any
if svcf.NArg() > 1 {
if err := epf.Parse(svcf.Args()[1:]); err != nil {
return nil, nil, err
}
}
var (
data interface{}
endpoint goa.Endpoint
err error
)
{
switch svcn {
case "service1":
c := service1c.NewClient(scheme, host, doer, enc, dec, restore)
switch epn {
case "signin":
endpoint = c.Signin()
data, err = service1c.BuildSigninPayload(*service1SigninUsernameFlag, *service1SigninPasswordFlag)
case "secure":
endpoint = c.Secure()
data, err = service1c.BuildSecurePayload(*service1SecureBodyFlag, *service1SecureTokenFlag)
}
}
}
if err != nil {
return nil, nil, err
}
return endpoint, data, nil
}
// service1Usage displays the usage of the service1 command and its subcommands.
func service1Usage() {
fmt.Fprintf(os.Stderr, `The secured service exposes endpoints that require valid authorization credentials.
Usage:
%[1]s [globalflags] service1 COMMAND [flags]
COMMAND:
signin: Signin implements signin.
secure: 这是一个需要JWT认证的接口
Additional help:
%[1]s service1 COMMAND --help
`, os.Args[0])
}
func service1SigninUsage() {
fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 signin -username STRING -password STRING
Signin implements signin.
-username STRING: Username used to perform signin
-password STRING: Password used to perform signin
Example:
%[1]s service1 signin --username "user" --password "password"
`, os.Args[0])
}
func service1SecureUsage() {
fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 secure -body JSON -token STRING
这是一个需要JWT认证的接口
-body JSON:
-token STRING:
Example:
%[1]s service1 secure --body '{
"fail": true
}' --token "Ducimus aut similique."
`, os.Args[0])
}