From 025991160bc2c3ce15c167542d12642727420c8c Mon Sep 17 00:00:00 2001 From: celogeek <65178+celogeek@users.noreply.github.com> Date: Wed, 15 Dec 2021 22:30:09 +0100 Subject: [PATCH] debug output --- internal/piwigo/post.go | 26 +++++++++++++++++++++++--- internal/piwigocli/general.go | 4 ++-- internal/piwigocli/main.go | 3 ++- internal/piwigocli/session_login.go | 12 ++++++------ internal/piwigocli/session_status.go | 6 +++--- 5 files changed, 36 insertions(+), 15 deletions(-) diff --git a/internal/piwigo/post.go b/internal/piwigo/post.go index d63515a..e73b2b3 100644 --- a/internal/piwigo/post.go +++ b/internal/piwigo/post.go @@ -1,10 +1,13 @@ package piwigo import ( + "bytes" "encoding/json" "fmt" + "io" "net/http" "net/url" + "os" "strings" ) @@ -54,9 +57,26 @@ func (p *Piwigo) Post(method string, form *url.Values, resp interface{}) error { Result: resp, } - err = json.NewDecoder(r.Body).Decode(&Result) - if err != nil { - return err + if os.Getenv("DEBUG") == "1" { + newBody := &bytes.Buffer{} + tee := io.TeeReader(r.Body, newBody) + + var RawResult map[string]interface{} + err = json.NewDecoder(tee).Decode(&RawResult) + if err != nil { + return err + } + DumpResponse(RawResult) + + err = json.NewDecoder(newBody).Decode(&Result) + if err != nil { + return err + } + } else { + err = json.NewDecoder(r.Body).Decode(&Result) + if err != nil { + return err + } } if Result.Stat != "ok" { diff --git a/internal/piwigocli/general.go b/internal/piwigocli/general.go index 98d4d3b..41dadae 100644 --- a/internal/piwigocli/general.go +++ b/internal/piwigocli/general.go @@ -1,6 +1,7 @@ package piwigocli import ( + "net/url" "os" "github.com/celogeek/piwigo-cli/internal/piwigo" @@ -29,7 +30,7 @@ func (c *GetInfosCommand) Execute(args []string) error { var resp GetInfosResponse - if err := p.Post("pwg.getInfos", nil, &resp); err != nil { + if err := p.Post("pwg.getInfos", &url.Values{}, &resp); err != nil { return err } @@ -48,5 +49,4 @@ func (c *GetInfosCommand) Execute(args []string) error { func init() { parser.AddCommand("getinfos", "Get general information", "", &getInfosCommand) - } diff --git a/internal/piwigocli/main.go b/internal/piwigocli/main.go index a38b8a8..82e6896 100644 --- a/internal/piwigocli/main.go +++ b/internal/piwigocli/main.go @@ -6,7 +6,8 @@ import ( "github.com/jessevdk/go-flags" ) -type Options struct{} +type Options struct { +} var options Options diff --git a/internal/piwigocli/session_login.go b/internal/piwigocli/session_login.go index 9b79dcd..733b83e 100644 --- a/internal/piwigocli/session_login.go +++ b/internal/piwigocli/session_login.go @@ -8,21 +8,21 @@ import ( ) type LoginCommand struct { - Url string `short:"u" long:"url" description:"Url of the instance"` - Login string `short:"l" long:"login" description:"Login"` - Password string `short:"p" long:"password" description:"Password"` + Url string `short:"u" long:"url" description:"Url of the instance" required:"true"` + Login string `short:"l" long:"login" description:"Login" required:"true"` + Password string `short:"p" long:"password" description:"Password" required:"true"` } func (c *LoginCommand) Execute(args []string) error { fmt.Printf("Login on %s...\n", c.Url) - Piwigo := piwigo.Piwigo{ + p := piwigo.Piwigo{ Url: c.Url, } result := false - err := Piwigo.Post("pwg.session.login", &url.Values{ + err := p.Post("pwg.session.login", &url.Values{ "username": []string{c.Login}, "password": []string{c.Password}, }, &result) @@ -30,7 +30,7 @@ func (c *LoginCommand) Execute(args []string) error { return err } - err = Piwigo.SaveConfig() + err = p.SaveConfig() if err != nil { return err } diff --git a/internal/piwigocli/session_status.go b/internal/piwigocli/session_status.go index aac14e3..33751d3 100644 --- a/internal/piwigocli/session_status.go +++ b/internal/piwigocli/session_status.go @@ -17,14 +17,14 @@ type StatusResponse struct { } func (c *StatusCommand) Execute(args []string) error { - Piwigo := piwigo.Piwigo{} - if err := Piwigo.LoadConfig(); err != nil { + p := piwigo.Piwigo{} + if err := p.LoadConfig(); err != nil { return err } resp := &StatusResponse{} - if err := Piwigo.Post("pwg.session.getStatus", nil, &resp); err != nil { + if err := p.Post("pwg.session.getStatus", nil, &resp); err != nil { return err }