From 5412cc37203d822db1e949f4a2c97d8476604e50 Mon Sep 17 00:00:00 2001 From: ahmetlutfu Date: Mon, 25 May 2020 11:15:27 +0000 Subject: [PATCH 1/3] updated error handling --- response.go | 13 +++++++++---- tinypng.go | 9 +++++++-- tinypng/main.go | 6 +++++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/response.go b/response.go index 4e13f44..32e8e86 100644 --- a/response.go +++ b/response.go @@ -43,18 +43,23 @@ func (r *Response) PopulateFromHTTPResponse(res *http.Response) { } // SaveAs downloads and saves the compressed PNG file -func (r *Response) SaveAs(fn string) { +func (r *Response) SaveAs(fn string) (err error) { resp, err := http.Get(r.URL) - check(err) + if err != nil { + return + } defer resp.Body.Close() out, err := os.Create(fn) - check(err) + if err != nil { + return + } defer out.Close() - io.Copy(out, resp.Body) + _, err = io.Copy(out, resp.Body) + return } // Print a line of statistics diff --git a/tinypng.go b/tinypng.go index 392e18c..15ee998 100644 --- a/tinypng.go +++ b/tinypng.go @@ -24,13 +24,18 @@ func ShrinkFn(apiKey string, inputFilename string) (Response, error) { // Shrink allows you to shrink a PNG file using an open file handle. func Shrink(apiKey string, inputFile *os.File) (Response, error) { res, err := uploadPNG(apiKey, inputFile) - check(err) + if err != nil { + return Response{}, err + } defer res.Body.Close() var r Response - r.PopulateFromHTTPResponse(res) + err = r.PopulateFromHTTPResponse(res) + if err != nil { + return Response{}, err + } if res.StatusCode == 201 { return r, nil diff --git a/tinypng/main.go b/tinypng/main.go index 3ab1aec..6b096cd 100644 --- a/tinypng/main.go +++ b/tinypng/main.go @@ -75,7 +75,11 @@ func main() { } // Download the compressed PNG - res.SaveAs(outputFilename) + err = res.SaveAs(outputFilename) + if err != nil { + fatalError(err.Error()) + } + } // Handle input From d1d5d597ad9db1feb07bdc997e67091b220540fc Mon Sep 17 00:00:00 2001 From: ahmetlutfu Date: Mon, 25 May 2020 12:58:08 +0000 Subject: [PATCH 2/3] updated error check --- response.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/response.go b/response.go index 32e8e86..89314ce 100644 --- a/response.go +++ b/response.go @@ -30,16 +30,20 @@ type Output struct { } // PopulateFromHTTPResponse populates response based on HTTP response -func (r *Response) PopulateFromHTTPResponse(res *http.Response) { +func (r *Response) PopulateFromHTTPResponse(res *http.Response,err error) { body, err := ioutil.ReadAll(res.Body) - check(err) + if err != nil { + return nil,err + } err = json.Unmarshal(body, &r) - - check(err) + if err != nil { + return nil,err + } // Get the output URL from the Location header r.URL = res.Header.Get("Location") + return } // SaveAs downloads and saves the compressed PNG file From d17f91ae3f3d036916cae5d8ae2a48d33b40764f Mon Sep 17 00:00:00 2001 From: ahmetlutfu Date: Mon, 25 May 2020 13:09:03 +0000 Subject: [PATCH 3/3] update --- response.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/response.go b/response.go index 89314ce..f50bb80 100644 --- a/response.go +++ b/response.go @@ -30,15 +30,15 @@ type Output struct { } // PopulateFromHTTPResponse populates response based on HTTP response -func (r *Response) PopulateFromHTTPResponse(res *http.Response,err error) { +func (r *Response) PopulateFromHTTPResponse(res *http.Response)(err error) { body, err := ioutil.ReadAll(res.Body) if err != nil { - return nil,err + return } err = json.Unmarshal(body, &r) if err != nil { - return nil,err + return } // Get the output URL from the Location header