pretty print by default
parent
f782ff175c
commit
07502502ef
37
main.go
37
main.go
|
|
@ -4,6 +4,7 @@ import (
|
|||
"bytes"
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
|
|
@ -16,12 +17,17 @@ import (
|
|||
"gitlab-app.eng.qops.net/golang/jwt"
|
||||
)
|
||||
|
||||
type LagReader struct {
|
||||
lag time.Duration
|
||||
src io.Reader
|
||||
}
|
||||
|
||||
func main() {
|
||||
var bodyRepeat int
|
||||
var path, host, method, body, headers, brandID, issuer string
|
||||
var ca, cert, key, secret string
|
||||
var needJWT, verbose bool
|
||||
var timeout time.Duration
|
||||
var needJWT, verbose, jsonPP bool
|
||||
var timeout, lag time.Duration
|
||||
flag.StringVar(&method, "method", "get", "method for request")
|
||||
flag.StringVar(&path, "path", "fieldsetdefinitions/v1/index/surveys/SV_031sm3MMOPSa8Tz/fieldsets?assumeHasPermission=true", "path for request")
|
||||
flag.StringVar(&host, "host", "data-platform.service.b1-prv.consul:8080", "host and port for request")
|
||||
|
|
@ -31,8 +37,10 @@ func main() {
|
|||
flag.StringVar(&headers, "headers", "", "headers as k=v,k=v for request")
|
||||
flag.StringVar(&issuer, "issuer", "dataprocessing,responseengine,fieldset-definitions,qualtrics,objectstore,svs,monolith,ex,blixt,null,responseengine", "issuer for jwt")
|
||||
flag.BoolVar(&needJWT, "jwt", true, "need jwt boolean")
|
||||
flag.BoolVar(&jsonPP, "jpp", true, "try json pretty print")
|
||||
flag.BoolVar(&verbose, "v", false, "is verbose")
|
||||
flag.DurationVar(&timeout, "t", time.Second*10, "request timeout")
|
||||
flag.DurationVar(&lag, "lag", time.Second*0, "writing request lag after connecting")
|
||||
flag.StringVar(&ca, "ca", "", "ca for server")
|
||||
flag.StringVar(&cert, "cert", "", "cert for client")
|
||||
flag.StringVar(&key, "key", "", "key for client")
|
||||
|
|
@ -50,6 +58,7 @@ func main() {
|
|||
} else {
|
||||
reqBody = os.Stdin
|
||||
}
|
||||
reqBody = NewLagReader(lag, reqBody)
|
||||
req, err := http.NewRequest(
|
||||
strings.ToUpper(method),
|
||||
host+"/"+strings.Trim(path, "/"),
|
||||
|
|
@ -58,6 +67,7 @@ func main() {
|
|||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
req.Header.Add("Content-Type", "application/json")
|
||||
if len(headers) > 0 {
|
||||
for _, pair := range strings.Split(headers, ",") {
|
||||
kv := strings.Split(pair, "=")
|
||||
|
|
@ -84,6 +94,14 @@ func main() {
|
|||
defer resp.Body.Close()
|
||||
|
||||
fmt.Fprintf(os.Stderr, "(%d) ", resp.StatusCode)
|
||||
if jsonPP {
|
||||
var v interface{}
|
||||
if err := json.Unmarshal(b, &v); err == nil {
|
||||
if c, err := json.MarshalIndent(v, "", " "); err == nil {
|
||||
b = c
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Printf("%s\n", bytes.TrimSpace(b))
|
||||
}
|
||||
|
||||
|
|
@ -135,3 +153,18 @@ func setJWT(r *http.Request, brandID string, issuer string, secret string) {
|
|||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func NewLagReader(lag time.Duration, src io.Reader) *LagReader {
|
||||
return &LagReader{
|
||||
lag: lag,
|
||||
src: src,
|
||||
}
|
||||
}
|
||||
|
||||
func (lr *LagReader) Read(p []byte) (n int, err error) {
|
||||
if lr.lag > 0 {
|
||||
<-time.After(lr.lag)
|
||||
lr.lag = 0
|
||||
}
|
||||
return lr.src.Read(p)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue